CRYPT_ECC_DHE_SharedSecretMake Function

C

int CRYPT_ECC_DHE_SharedSecretMake(
    CRYPT_ECC_CTX* priv, 
    CRYPT_ECC_CTX* pub, 
    unsigned char* out, 
    unsigned int outSz, 
    unsigned int* usedSz
);

Description

This function takes two ECC contexts (one public, one private) and creates a shared secret between the two. The secret conforms to EC-DH from ANSU X9.63.

Preconditions

Both contexts must have been initialized with a call to CRYPT_ECC_Initialize. Both contexts have had their respective keys imported or created.

Parameters

Parameters Description
priv Pointer to the private ECC context (with the private key).
pub Pointer to the public ECC context (with the public key).
out Destination of the shared secret.
outSz The max size of the shared secret.
usedSz Resulting size of the shared secret.

Returns

Remarks

None.

Example

CRYPT_ECC_CTX userA; 
CRYPT_ECC_CTX userB;
int           ret;
byte          sharedA[100];
unsigned int  aSz   = (unsigned int)sizeof(sharedA);
unsigned int  usedA = 0;

ret = CRYPT_ECC_Initialize(&userA);
ret = CRYPT_ECC_Initialize(&userB);
...
// Make or import the appropriate keys
...
ret = CRYPT_ECC_DHE_SharedSecretMake(&userA, &userB, sharedA, aSz, &usedA);