I am looking for the methods in CommonCrypto to generate the shared secret based on ECDH (Elliptic curve Diffie–Hellman). I can find proprietary implementations like this one https://github.com/surespot/surespot-ios/blob/master/surespot/encryption/EncryptionController.mm but this one is not using CommonCrypto. The method to calculate the shared secret is called sometimes Key Exchange and includes the calculation of the shared secret. Can someone send a link to the right documentation or to an example that uses CommonCrypto for generating the shared secret based on Elliptic curve Diffie–Hellman?
            Asked
            
        
        
            Active
            
        
            Viewed 2,275 times
        
    1 Answers
1
            
            
        Look at CommonCrypto function from CommonECCryptor.h
CCECCryptorComputeSharedSecret( CCECCryptorRef privateKey, CCECCryptorRef publicKey, void *out, size_t *outLen)
It constructs a Diffie-Hellman shared secret with a private and public ECC key. Most information they provide are in the header file's commence lines. Header of CCECCryptorComputeSharedSecret is here
        Vlad
        
- 1,977
 - 19
 - 44
 
- 
                    1That is nice but do you have an include path? `#import
` does not work. Is this in the Security Framework? Is it a public API? – zaph Nov 05 '14 at 13:06 - 
                    #import ? My answer's URL links to C/C++ header. C includes headers with #include. – Vlad Nov 05 '14 at 15:24
 - 
                    I'm not so modern as you:) I use old C. The test that in particular invokes this function is [here](http://www.opensource.apple.com/source/CommonCrypto/CommonCrypto-60026/CCRegression/CommonCrypto/CommonEC.c) – Vlad Nov 05 '14 at 17:42
 - 
                    The issue is iOS that can only use public APIs. – zaph Nov 05 '14 at 19:42
 - 
                    The author of question was looking for the methods in CommonCrypto to generate the shared secret based on ECDH. I pointed to the function. The question does not contain any restrictions (App store, language, etc.). Author should decide if his environment allows such method. – Vlad Nov 05 '14 at 21:20
 - 
                    The question is tagged "ios", that would be considered a restriction. – zaph Nov 05 '14 at 21:54
 - 
                    Zaph, I have no iOS now to test, author didn't share his results. So if you have no updates I will delete my answer. Please let me know. – Vlad Nov 16 '14 at 03:46
 - 
                    I think you should look to `SecKeyCopyKeyExchangeResult` for a modern and secure approach and also Apple reccomendation – Fabiosoft Apr 13 '20 at 17:40
 - 
                    Is there an example code of how to use CCECCryptorComputeSharedSecret in swift ? with private and public EC keys ? – Max May 26 '20 at 21:58