CryptoRtsByteStringInit (FUN) ¶ FUNCTION CryptoRtsByteStringInit : RTS_IEC_RESULT InOut: Scope Name Type Return CryptoRtsByteStringInit RTS_IEC_RESULT Input pByteString POINTER TO RtsByteString
CryptoRtsByteStringInit2 (FUN) ¶ FUNCTION CryptoRtsByteStringInit2 : RTS_IEC_RESULT Initialize a byte string. InOut: Scope Name Type Comment Return CryptoRtsByteStringInit2 RTS_IEC_RESULT Input pByteString POINTER TO RtsByteString Pointer to the RtsByteString to be initialized. ui32BufferSize UDINT Buffersize needed for this byte string. pBuffer POINTER TO BYTE Pointer to a optional static buffer. If NULL is passed the function will allocated ui32BufferSize bytes from the heap. xEmptyBuffer BOOL Used for static buffers. If FALSE pByteString->ui32Lenght will be set to ui32BufferSize. Must be TRUE if pBuffer == NULL
Key Derivation ¶ CryptoDeriveKey (Function)
CryptoDeriveKey (FUN) ¶ FUNCTION CryptoDeriveKey : RTS_IEC_RESULT This Function derives a new key FROM an existing secret (key) AND an corresponding salt. The functions generates keys of the requested size which is given in pDerivedKey->ui32MaxLen. If setup properly this function provides a secure way to store passwords within the file system. By now two classes of algorithms can be use: 1. P_SHA(1, 256): This algorithm can be used to derive session keys from some kind of secret data. If this algorithm is used the pSpecificParameters is not evaluated an should be NULL. This algorithm is quite fast. 2. SCRYPT: This algorithm can be used to generate strong keys from weak passwords, or to store passwords in a secure way within the file system. This algorithm makes use of the pSpecificParameters and requires this parameter. Depending on the configuration given in pSpecificParameters this algorithm is time and memory consuming. For details see RFC-7914. InOut: Scope Name Type Comment Return CryptoDeriveKey RTS_IEC_RESULT Result of the operation. ERR_OK: The key was derived successfully. ERR_INVALID_HANDLE: hAlgo was not a valid handle to derive keys. ERR_PARAMETER: One of the other parameters was invalid. ERR_FAILED: some internal error happend. Input hAlgo RTS_IEC_HANDLE Handle of the used algoritm. Should be one of RTSCRYPTOID_KDF_* algorithms. pKey POINTER TO RtsByteString The key that should be derived. The function reads pKey->ui32Len bytes of the given buffer. pSalt POINTER TO RtsByteString The SALT that should be used to derive the key. The function reads pSalt->ui32Len bytes of the given buffer. pSpecificParameters POINTER TO RtsKdfParameter Some additional algorithm specific parameters. By now only used for scrypt. pDerivedKey POINTER TO RtsByteString Destination where to store the derived key. The function generates a key with the size of pDerivedKey->ui32MaxLen. The size of the derived key will be stored in pDerivedKey->ui32Len.
Key Handling ¶ CryptoKeyExit (Function) CryptoKeyInit (Function)
CryptoKeyExit (FUN) ¶ FUNCTION CryptoKeyExit : RTS_IEC_RESULT InOut: Scope Name Type Return CryptoKeyExit RTS_IEC_RESULT Input pKey POINTER TO RtsCryptoKey
CryptoKeyInit (FUN) ¶ FUNCTION CryptoKeyInit : RTS_IEC_RESULT InOut: Scope Name Type Return CryptoKeyInit RTS_IEC_RESULT Input pKey POINTER TO RtsCryptoKey key RtsCryptoKeyStorage keyType RtsCryptoKeyType
Symmetric Cryptography ¶ CryptoGenerateHash (Function) CryptoHMACSign (Function) CryptoHMACVerify (Function) CryptoSymmetricDecrypt (Function) CryptoSymmetricEncrypt (Function)
CryptoGenerateHash (FUN) ¶ FUNCTION CryptoGenerateHash : RTS_IEC_RESULT Calculate the message digest of the given data. InOut: Scope Name Type Comment Return CryptoGenerateHash RTS_IEC_RESULT Result of the operation Input hAlgo RTS_IEC_HANDLE Handle to the algorithm. pData POINTER TO RtsByteString Data to calculate the message digest. pHash POINTER TO RtsByteString Calculated message digest.
CryptoHMACSign (FUN) ¶ FUNCTION CryptoHMACSign : RTS_IEC_RESULT Generate a hashed message authentication code (HMAC) OF the given data AND key. InOut: Scope Name Type Comment Return CryptoHMACSign RTS_IEC_RESULT Result of the operation Input hAlgo RTS_IEC_HANDLE Handle to the algorithm. pData POINTER TO RtsByteString Data to calculate the HMAC. key RtsCryptoKey Key to be used for the HMAC calcuation pSignature POINTER TO RtsByteString Calculated HMAC