<div dir="ltr">@licenses: <div>* PolarSSL is dual-licensed (GPL + commercial) --&gt; nope<br></div><div>* the Crypto++ is licensed via Boost ( a C++ library license) </div><div><br></div><div>I am not sure if for JBoss the license is OK, but.... the ASF is OK with using that license..... (see [1] and [2]).</div>
<div>[1] <a href="http://www.apache.org/legal/resolved.html">http://www.apache.org/legal/resolved.html</a><br></div><div>[2] <a href="https://issues.apache.org/jira/browse/LEGAL-101">https://issues.apache.org/jira/browse/LEGAL-101</a></div>
<div><br></div><div>regardless the _technical_ issue is: C++ based... so the integration is odd;</div><div><br></div><div>-Matthias</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Oct 11, 2013 at 11:24 AM, Corinne Krych <span dir="ltr">&lt;<a href="mailto:corinnekrych@gmail.com" target="_blank">corinnekrych@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi All,<br>
<br>
Discussing with iOS team with all possible options taking into account OS licenses and encryption algorithms coverage, we&#39;d like to move forward investigating openSSL srtarting with this interesting entry point:<br>
&gt; <a href="https://github.com/x2on/OpenSSL-for-iPhone" target="_blank">https://github.com/x2on/OpenSSL-for-iPhone</a><br>
<br>
<br>
We&#39;ll tell you more soon.<br>
++<br>
<span class="HOEnZb"><font color="#888888">Corinne.<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Oct 10, 2013, at 9:36 PM, Corinne Krych &lt;<a href="mailto:corinnekrych@gmail.com">corinnekrych@gmail.com</a>&gt; wrote:<br>
<br>
&gt; According to<br>
&gt; <a href="https://gist.github.com/cvasilak/b967893655a04cbe5b7b#file-gistfile1-txt-L669" target="_blank">https://gist.github.com/cvasilak/b967893655a04cbe5b7b#file-gistfile1-txt-L669</a><br>
&gt; CBC is supported.<br>
&gt;<br>
&gt; Maybe it&#39;s worth investigating OpenSSL vs PolarSSL iOS support.<br>
&gt; Interesting work dto dig further<br>
&gt; <a href="https://github.com/x2on/OpenSSL-for-iPhone" target="_blank">https://github.com/x2on/OpenSSL-for-iPhone</a><br>
&gt; <a href="http://x2on.de/2010/12/16/tutorial-script-for-building-openssl-for-ios-iphoneipad/" target="_blank">http://x2on.de/2010/12/16/tutorial-script-for-building-openssl-for-ios-iphoneipad/</a><br>
&gt; or<br>
&gt; <a href="https://github.com/x2on/PolarSSL-for-iOS" target="_blank">https://github.com/x2on/PolarSSL-for-iOS</a><br>
&gt;<br>
&gt; ++<br>
&gt; Corinne<br>
&gt;<br>
&gt; On Oct 10, 2013, at 8:39 PM, Bruno Oliveira &lt;<a href="mailto:bruno@abstractj.org">bruno@abstractj.org</a>&gt; wrote:<br>
&gt;<br>
&gt;&gt; Aloha, looks like Apple wants to hide all the good crypto! Have you got<br>
&gt;&gt; the chance to look at this? <a href="https://github.com/rnapier/RNCryptor" target="_blank">https://github.com/rnapier/RNCryptor</a> I also<br>
&gt;&gt; see some developers using OpenSSL as an alternative. My suggestion:<br>
&gt;&gt;<br>
&gt;&gt; a) If you think this item is tricky to implement atm consider AES with<br>
&gt;&gt; CBC or AES with CCM (We can support it on the server if necessary). I<br>
&gt;&gt; was trying to find which modes is currently supported but looks like the<br>
&gt;&gt; documentation is super safe, because I can&#39;t find it<br>
&gt;&gt;<br>
&gt;&gt; b) It can be done with OpenSSL in the worst case scenario (not saying is<br>
&gt;&gt; a piece of cake to do, just possible). Let&#39;s start simple first.<br>
&gt;&gt;<br>
&gt;&gt; Regarding <a href="http://www.cryptopp.com/" target="_blank">http://www.cryptopp.com/</a> looks like they have all that we<br>
&gt;&gt; need, maybe worth to take a look at this. What do you think? Off the top<br>
&gt;&gt; of my head I only can see 3 alternatives:<br>
&gt;&gt;<br>
&gt;&gt; 1- Implement encryption with what CommonCrypto provides<br>
&gt;&gt; 2- Try cryptopp or another alternative<br>
&gt;&gt; 3- Implement it with OpenSSL. For example SilentCircle make use of<br>
&gt;&gt; PolarSSL<br>
&gt;&gt; <a href="https://github.com/SilentCircle/silent-phone-base/tree/master/libs" target="_blank">https://github.com/SilentCircle/silent-phone-base/tree/master/libs</a>. I&#39;m<br>
&gt;&gt; not saying to do the same, just an example.<br>
&gt;&gt;<br>
&gt;&gt;&gt; Christos Vasilakis &lt;mailto:<a href="mailto:cvasilak@gmail.com">cvasilak@gmail.com</a>&gt;<br>
&gt;&gt;&gt; October 10, 2013 2:29 PM<br>
&gt;&gt;&gt; Hi team,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I am digging on the CommonCrypto API and I found some issues.<br>
&gt;&gt;&gt; Specifically:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; a)  GCM mode for AES symmetric encryption is part of a private API.<br>
&gt;&gt;&gt; See [1] the public interface of the current definitions of supported<br>
&gt;&gt;&gt; modes of operation. &#39;kCCModeGCM&#39; is missing _although_ digging on the<br>
&gt;&gt;&gt; source code of the apple&#39;s web site it is defined in [2]  &#39;private&#39;<br>
&gt;&gt;&gt; (The file is included from a private interface here [3]).  Also here<br>
&gt;&gt;&gt; is the implementation of the GCM mode in [4] and test cases that<br>
&gt;&gt;&gt; exercise it [5]. Not sure why Apple left it out in public. On my<br>
&gt;&gt;&gt; search, one area in which they use this mode is on the KeyChain from<br>
&gt;&gt;&gt; iOS 5 onwards, see &#39;KeyChain&#39; section here [6]<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; b) Generation of asymmetric  ECC keys and encryption is supported by<br>
&gt;&gt;&gt; CommonCrypto but _again_ under a private interface, see [7] and [8].<br>
&gt;&gt;&gt; ECC is used in the protection class<br>
&gt;&gt;&gt; &#39;NSFileProtectionCompleteUnlessOpen&#39; according to the iOS Security doc<br>
&gt;&gt;&gt; here [9]. In the meeting there was a plan B for it, RSA with Diffie<br>
&gt;&gt;&gt; Hellman. I am looking at it, but to my current knowledge is supported<br>
&gt;&gt;&gt; if you trust the apple docs here [10]<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; My worry is how can we proceed with the first issue.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; As a side note, during my search I discovered Crypto++ [11] , which<br>
&gt;&gt;&gt; seems to offer many of the features we are trying to support. Con is a<br>
&gt;&gt;&gt; C++ interface although an iOS distribution of it exists (see [12]),<br>
&gt;&gt;&gt; and there is an iOS wiki page in the library home page [13].  Needs<br>
&gt;&gt;&gt; more research.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Thanks,<br>
&gt;&gt;&gt; Christos<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; [1] <a href="https://gist.github.com/cvasilak/b967893655a04cbe5b7b#file-gistfile1-txt-L667" target="_blank">https://gist.github.com/cvasilak/b967893655a04cbe5b7b#file-gistfile1-txt-L667</a><br>
&gt;&gt;&gt; [2] <a href="https://github.com/Apple-FOSS-Mirror/CommonCrypto/blob/master/Source/CommonCryptoSPI/CommonCryptorSPI.h#L70" target="_blank">https://github.com/Apple-FOSS-Mirror/CommonCrypto/blob/master/Source/CommonCryptoSPI/CommonCryptorSPI.h#L70</a><br>

&gt;&gt;&gt; [3] <a href="https://github.com/Apple-FOSS-Mirror/CommonCrypto/blob/master/Source/CommonCryptoSPI/CommonCryptoPriv.h" target="_blank">https://github.com/Apple-FOSS-Mirror/CommonCrypto/blob/master/Source/CommonCryptoSPI/CommonCryptoPriv.h</a><br>

&gt;&gt;&gt; [4] <a href="https://github.com/Apple-FOSS-Mirror/CommonCrypto/blob/master/Source/API/CommonGCMCryptor.c" target="_blank">https://github.com/Apple-FOSS-Mirror/CommonCrypto/blob/master/Source/API/CommonGCMCryptor.c</a><br>

&gt;&gt;&gt; [5] <a href="https://github.com/Apple-FOSS-Mirror/CommonCrypto/blob/master/CCRegression/CommonCrypto/CommonCryptoSymGCM.c" target="_blank">https://github.com/Apple-FOSS-Mirror/CommonCrypto/blob/master/CCRegression/CommonCrypto/CommonCryptoSymGCM.c</a><br>

&gt;&gt;&gt; [6] <a href="http://esec-lab.sogeti.com/post/iOS-5-data-protection-updates" target="_blank">http://esec-lab.sogeti.com/post/iOS-5-data-protection-updates</a><br>
&gt;&gt;&gt; [7] <a href="https://github.com/Apple-FOSS-Mirror/CommonCrypto/blob/master/Source/CommonCryptoSPI/CommonECCryptor.h" target="_blank">https://github.com/Apple-FOSS-Mirror/CommonCrypto/blob/master/Source/CommonCryptoSPI/CommonECCryptor.h</a><br>

&gt;&gt;&gt; [8] <a href="https://github.com/Apple-FOSS-Mirror/CommonCrypto/blob/master/Source/API/CommonECCryptor.c" target="_blank">https://github.com/Apple-FOSS-Mirror/CommonCrypto/blob/master/Source/API/CommonECCryptor.c</a><br>

&gt;&gt;&gt; [9] <a href="http://www.apple.com/ipad/business/docs/iOS_Security_Oct12.pdf" target="_blank">http://www.apple.com/ipad/business/docs/iOS_Security_Oct12.pdf</a><br>
&gt;&gt;&gt; [10]<a href="https://developer.apple.com/library/ios/documentation/security/conceptual/cryptoservices/CryptographyConcepts/CryptographyConcepts.html#//apple_ref/doc/uid/TP40011172-CH8-CHDCCDIA" target="_blank">https://developer.apple.com/library/ios/documentation/security/conceptual/cryptoservices/CryptographyConcepts/CryptographyConcepts.html#//apple_ref/doc/uid/TP40011172-CH8-CHDCCDIA</a><br>

&gt;&gt;&gt; [11] <a href="http://www.cryptopp.com" target="_blank">http://www.cryptopp.com</a> &lt;<a href="http://www.cryptopp.com/" target="_blank">http://www.cryptopp.com/</a>&gt;<br>
&gt;&gt;&gt; [12] <a href="https://github.com/noloader/cryptopp-5.6.2-ios" target="_blank">https://github.com/noloader/cryptopp-5.6.2-ios</a><br>
&gt;&gt;&gt; [13] <a href="http://www.cryptopp.com/wiki/IOS_(Xcode)" target="_blank">http://www.cryptopp.com/wiki/IOS_(Xcode)</a><br>
&gt;&gt;&gt; &lt;<a href="http://www.cryptopp.com/wiki/IOS_%28Xcode%29" target="_blank">http://www.cryptopp.com/wiki/IOS_%28Xcode%29</a>&gt;<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; aerogear-dev mailing list<br>
&gt;&gt;&gt; <a href="mailto:aerogear-dev@lists.jboss.org">aerogear-dev@lists.jboss.org</a><br>
&gt;&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/aerogear-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a><br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; abstractj<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; aerogear-dev mailing list<br>
&gt;&gt; <a href="mailto:aerogear-dev@lists.jboss.org">aerogear-dev@lists.jboss.org</a><br>
&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/aerogear-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a><br>
&gt;<br>
<br>
<br>
_______________________________________________<br>
aerogear-dev mailing list<br>
<a href="mailto:aerogear-dev@lists.jboss.org">aerogear-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/aerogear-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>Matthias Wessendorf <br><br>blog: <a href="http://matthiaswessendorf.wordpress.com/" target="_blank">http://matthiaswessendorf.wordpress.com/</a><br>
sessions: <a href="http://www.slideshare.net/mwessendorf" target="_blank">http://www.slideshare.net/mwessendorf</a><br>twitter: <a href="http://twitter.com/mwessendorf" target="_blank">http://twitter.com/mwessendorf</a>
</div>