Asymmetric Cryptography ¶ CryptoAsymmetricDecrypt (Function) CryptoAsymmetricEncrypt (Function) CryptoDeletePrivateKey (Function) CryptoExportAsymmetricKey (Function) CryptoExportRawAsymmetricKey (Function) CryptoGenerateAsymmetricKeyPair (Function) CryptoGetAsymmetricKeyLength (Function) CryptoImportAsymmetricKey (Function) CryptoImportRawAsymmetricKey (Function) CryptoKeyAgreement (Function) CryptoLoadPrivateKey (Function) CryptoSignatureGenerate (Function) CryptoSignatureVerify (Function) CryptoStorePrivateKey (Function)
CmpCrypto Implementation ¶ Asymmetric Cryptography CryptoAsymmetricDecrypt (Function) CryptoAsymmetricEncrypt (Function) CryptoDeletePrivateKey (Function) CryptoExportAsymmetricKey (Function) CryptoExportRawAsymmetricKey (Function) CryptoGenerateAsymmetricKeyPair (Function) CryptoGetAsymmetricKeyLength (Function) CryptoImportAsymmetricKey (Function) CryptoImportRawAsymmetricKey (Function) CryptoKeyAgreement (Function) CryptoLoadPrivateKey (Function) CryptoSignatureGenerate (Function) CryptoSignatureVerify (Function) CryptoStorePrivateKey (Function) Functions CryptoGenerateRandomNumber (Function) CryptoGetAlgorithmById (Function) CryptoGetFirstAlgorithm (Function) CryptoGetNextAlgorithm (Function) CryptoRtsByteStringExit (Function) CryptoRtsByteStringInit (Function) CryptoRtsByteStringInit2 (Function) Key Derivation CryptoDeriveKey (Function) Key Handling CryptoKeyExit (Function) CryptoKeyInit (Function) Symmetric Cryptography CryptoGenerateHash (Function) CryptoHMACSign (Function) CryptoHMACVerify (Function) CryptoSymmetricDecrypt (Function) CryptoSymmetricEncrypt (Function)
CryptoAsymmetricDecrypt (FUN) ¶ FUNCTION CryptoAsymmetricDecrypt : RTS_IEC_RESULT Perform a asymmetric decryption using the algorithm handle. InOut: Scope Name Type Comment Return CryptoAsymmetricDecrypt RTS_IEC_RESULT Result of the operation Input hAlgo RTS_IEC_HANDLE Handle to the algorithm. pCipherText POINTER TO RtsByteString Data to be decrypted privateKey RtsCryptoKey Private key used to decrypt the data. pPlainText POINTER TO RtsByteString Decrypted data.
CryptoAsymmetricEncrypt (FUN) ¶ FUNCTION CryptoAsymmetricEncrypt : RTS_IEC_RESULT Perform a asymmetric encryption using the algorithm handle. InOut: Scope Name Type Comment Return CryptoAsymmetricEncrypt RTS_IEC_RESULT Result of the operation Input hAlgo RTS_IEC_HANDLE Handle to the algorithm. pPlainText POINTER TO RtsByteString Data to be encrypted publicKey RtsCryptoKey Public key used to encrypt the data. pCipherText POINTER TO RtsByteString Encrypted data.
CryptoDeletePrivateKey (FUN) ¶ FUNCTION CryptoDeletePrivateKey : RTS_IEC_RESULT This function can be used to delete a private key from the components internal data store. InOut: Scope Name Type Comment Return CryptoDeletePrivateKey RTS_IEC_RESULT Result of the operation Input keyIdentifier RtsByteString The identifier of the key got from CryptoStorePrivateKey.
CryptoExportAsymmetricKey (FUN) ¶ FUNCTION CryptoExportAsymmetricKey : RTS_IEC_RESULT This function can be used to export asymmetric keys InOut: Scope Name Type Comment Return CryptoExportAsymmetricKey RTS_IEC_RESULT Result of the operation. ERR_NOT_SUPPORTED if the key does not support exporting. Input key RtsCryptoKey The key to be exported. xBase64 BOOL Export the key in BASE64 encoding. Otherwise ASN.1 will be used. xPrivateKey BOOL FALSE: Export the public key. TRUE: Export the private key. pData POINTER TO RtsByteString Pointer to the buffer where to store the key.
CryptoExportRawAsymmetricKey (FUN) ¶ FUNCTION CryptoExportRawAsymmetricKey : RTS_IEC_RESULT Exports the public key of a key pair in raw format. This means that no additional data like ASN.1 or BASE64 encoding is generated. Not all key pairs will support this. InOut: Scope Name Type Comment Return CryptoExportRawAsymmetricKey RTS_IEC_RESULT Operation Result: ERR_OK: PUBLIC key was exported. ERR_INVALID_STATE: The component is not in a valid state to do this operation. ERR_PARAMETER: The key or the pKeyData was not valid. ERR_NOT_SUPPORTED: The given key does not support raw export. ERR_SIZE_MISMATCH: The given bytestring is too small. Input key RtsCryptoKey The key pair or public key to export in raw format. xPrivateKey BOOL TRUE: Export the private key. FALSE: Export the public key. pKeyData POINTER TO RtsByteString The bytestring to store the raw encoded key. If the bytestring is empty (pByData == NULL, ui32MaxLen > 0, ui32Len == 0) the needed size will be returned.
CryptoGenerateAsymmetricKeyPair (FUN) ¶ FUNCTION CryptoGenerateAsymmetricKeyPair : RTS_IEC_RESULT Generate an asymmetric key pair that can be used by the specivied algorithm. InOut: Scope Name Type Comment Return CryptoGenerateAsymmetricKeyPair RTS_IEC_RESULT Result of the operation Input hAlgo RTS_IEC_HANDLE Handle to the algorithm. ui32KeyLen UDINT Lenght of the key in bytes. May be omitted on ECC keys. pKeyPair POINTER TO RtsCryptoKey The generated key pair. Can be used for public or private key operations. xPrivateKeyExportable BOOL Define if the private key should be exportable using CrpyotExportAsymmetricKey
CryptoGetAsymmetricKeyLength (FUN) ¶ FUNCTION CryptoGetAsymmetricKeyLength : UDINT Get the asymmetric key size in bits. InOut: Scope Name Type Comment Return CryptoGetAsymmetricKeyLength UDINT Size of the asymmetric key in bits Input asymmetricKey RtsCryptoKey Asymmetric key of intrest. pResult POINTER TO RTS_IEC_RESULT Operation Result
CryptoImportAsymmetricKey (FUN) ¶ FUNCTION CryptoImportAsymmetricKey : RTS_IEC_RESULT This function can be used to import asymmtric keys from different formats. InOut: Scope Name Type Comment Return CryptoImportAsymmetricKey RTS_IEC_RESULT Result of the operation Input data RtsByteString The buffer to be imported. xBase64 BOOL Import the key in BASE64 encoding. Otherwise ASN.1 will be used. xPrivateKey BOOL TRUE: Import a private key. FLASE: Import a public key. pKey POINTER TO RtsCryptoKey The imported public key.