[Development] Update on iOS / SSL implementation
Jeremy Lainé
jeremy.laine at m4x.org
Thu May 29 19:26:51 CEST 2014
A while back I posted some proof of concept code to show what an
implementation of QSslSocket might look like using Secure Transport. I
have continued along these lines, and wanted to keep you updated.
1. GENERAL
Apple's Secure Transport API is available both on OS X and iOS. As I do
not have a iDevice, I have been developing on OS X exclusively, but
making sure the methods I use are available on iOS (iOS only has a
subset of OS X's capabilities).
Secure Transport API:
- provides close to nothing for manipulating certificates / keys => I
had to write a minimal (DER-only) ASN.1 parser
- only accepts certificates + keys .. in PKCS#12 form => I had some
write some ASN.1 serialisation code, and a lot of PKCS#12 code (I
absolutely hate that standard by now)
2. WHAT WORKS
I am now getting to the point where a lot unit tests are passing.
- QSslSocket works in client and in server mode
- QSslCertificate works, with no external dependencies
- QSslKey : ditto
What still needs work:
- the build system needs to be updated to allow building the SSL
classes, even when OpenSSL is not found
- QSslCertificate::isSelfSigned needs implementing
- QSslKey : serializing to a password-protected PEM does not work yet
- there is some duplicated code between the OpenSSL and Secure
Transport backends
- QSslConfiguration : no work done yet
3. HOW TO GET IT
As previously stated, my current work has been on OS X only, not actual
iOS devices.
1/ Checkout the qssl-ios branch from
https://qt.gitorious.org/qt/sharkys-qtbase on a OS X machine
2/ Apply the attached patch to fix / disable some QSslSocket unit tests
3/ Build it
4/ Run some unit tests
5/ Help fix the errors :)
Cheers,
Jeremy
PS: no unfortunately I cannot make it to the contributor summit
-------------- next part --------------
A non-text attachment was scrubbed...
Name: unit_tests.patch
Type: text/x-patch
Size: 4662 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/development/attachments/20140529/99dd9713/attachment.bin>
More information about the Development
mailing list