CryptoKeyAgreement (FUN)ΒΆ
FUNCTION CryptoKeyAgreement : RTS_IEC_RESULT
This function can be used to run asymmetric key agreement protocols like Diffie-Hellman (DH) or elliptic curve Diffie-Hellman (ECDH). These procols can be used to agree on secret keys via an insecure channel. The algorithm can not guarantee authenticity of the communication partner. Therefore, a man in the middle attack can not be detected or prevented during execution of the protocol. The strength of the new key depends on the chosen algorithm. It is recommended to derive a session key from this secret key.
- InOut:
- Scope - Name - Type - Comment - Return - CryptoKeyAgreement- RTS_IEC_RESULT- Operation result
- ERR_OK: Key agreement was successful. 
- ERR_INVALID_STATE: The component is not in a valid state to do this operation. 
- RTS_INVALID_HANDLE: The hAlgo was not of type RTSCRYPTOTYPE_KEYAGREEMENT. 
- ERR_PARAMETER: The given keys where invalid or pSharedSecret was NULL. 
- ERR_SIZE_MISMATCH: The given bytestring is too small. 
- ERR_FAILED: The operation failed of some internal error. 
- ERR_NOT_SUPPORTED: The given algorithm or key does not support this operation. 
 
 - Input - hAlgo- RTS_IEC_HANDLE- Handle of the used algorithm. Should be one of the RTSCRYPTOTYPE_KEYAGREEMENT algorithms. - privateKey- RtsCryptoKey- The local private key to run the operation. - peerPublicKey- RtsCryptoKey- The public key of the communication partner. - pSharedSecret- POINTER TO RtsByteString - The calculated shared secret key. 
