Go to the documentation of this file.
27 #ifndef SOPC_CRYPTO_PROFILES_H_
28 #define SOPC_CRYPTO_PROFILES_H_
56 #define SOPC_SecurityPolicy_Basic256Sha256_URI "http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256"
57 #define SOPC_SecurityPolicy_Basic256_URI "http://opcfoundation.org/UA/SecurityPolicy#Basic256"
58 #define SOPC_SecurityPolicy_None_URI "http://opcfoundation.org/UA/SecurityPolicy#None"
59 #define SOPC_SecurityPolicy_PubSub_Aes256_URI "http://opcfoundation.org/UA/SecurityPolicy#PubSub-Aes256-CTR"
60 #define SOPC_SecurityPolicy_Aes128Sha256RsaOaep_URI "http://opcfoundation.org/UA/SecurityPolicy#Aes128_Sha256_RsaOaep"
61 #define SOPC_SecurityPolicy_Aes256Sha256RsaPss_URI "http://opcfoundation.org/UA/SecurityPolicy#Aes256_Sha256_RsaPss"
63 #define SOPC_SecurityPolicy_Basic256Sha256_URI_SignAlgo "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"
64 #define SOPC_SecurityPolicy_Aes128Sha256RsaOaep_URI_SignAlgo "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"
65 #define SOPC_SecurityPolicy_Aes256Sha256RsaPss_URI_SignAlgo "http://opcfoundation.org/UA/security/rsa-pss-sha2-256"
66 #define SOPC_SecurityPolicy_Basic256_URI_SignAlgo "http://www.w3.org/2000/09/xmldsig#rsa-sha1"
115 const uint8_t* pInput,
116 uint32_t lenPlainText,
122 const uint8_t* pInput,
123 uint32_t lenCipherText,
129 const uint8_t* pInput,
134 const uint8_t* pInput,
137 const uint8_t* pSignature);
149 const uint8_t* pInput,
150 uint32_t lenPlainText,
154 const uint8_t* pInput,
155 uint32_t lenCipherText,
158 uint32_t* lenWritten);
160 const uint8_t* pInput,
163 uint8_t* pSignature);
165 const uint8_t* pInput,
168 const uint8_t* pSignature);
171 const uint8_t* pInput,
176 uint32_t uSequenceNumber,
uint32_t symmLen_MessageRandom
Definition: sopc_crypto_profiles.h:81
SOPC_ReturnStatus FnSymmetricVerify(const SOPC_CryptoProvider *pProvider, const uint8_t *pInput, uint32_t lenInput, const SOPC_ExposedBuffer *pKey, const uint8_t *pSignature)
Definition: sopc_crypto_profiles.h:133
Definition: sopc_crypto_profiles.h:69
#define S2OPC_COMMON_EXPORT
Definition: s2opc_common_export.h:33
FnGenerateRandom *const pFnGenRnd
Definition: sopc_crypto_profiles.h:202
uint32_t symmLen_Signature
Definition: sopc_crypto_profiles.h:78
@ SOPC_SecurityPolicy_Last_ID
Definition: sopc_crypto_profiles.h:53
SOPC_ReturnStatus FnGenerateRandom(const SOPC_CryptoProvider *pProvider, SOPC_ExposedBuffer *pData, uint32_t lenData)
Definition: sopc_crypto_profiles.h:138
const SOPC_SecurityPolicy_Config * SOPC_SecurityPolicy_Config_Get(SOPC_SecurityPolicy_ID policyId)
FnAsymmetricEncrypt *const pFnAsymEncrypt
Definition: sopc_crypto_profiles.h:204
const SOPC_CryptoProfile_PubSub * psProfile
Definition: sopc_crypto_profiles.h:74
@ SOPC_SecurityPolicy_Aes256Sha256RsaPss_ID
Definition: sopc_crypto_profiles.h:52
const uint32_t SecurityPolicyID
Definition: sopc_crypto_profiles.h:221
struct SOPC_SecurityPolicy_Config SOPC_SecurityPolicy_Config
uint32_t certLen_Thumbprint
Definition: sopc_crypto_profiles.h:86
@ SOPC_SecurityPolicy_None_ID
Definition: sopc_crypto_profiles.h:49
@ SOPC_SecurityPolicy_Basic256_ID
Definition: sopc_crypto_profiles.h:48
FnSymmetricSign *const pFnSymmSign
Definition: sopc_crypto_profiles.h:223
SOPC_ReturnStatus FnAsymmetricEncrypt(const SOPC_CryptoProvider *pProvider, const uint8_t *pInput, uint32_t lenPlainText, const SOPC_AsymmetricKey *pKey, uint8_t *pOutput)
Definition: sopc_crypto_profiles.h:148
FnDerivePseudoRandomData *const pFnDeriveData
Definition: sopc_crypto_profiles.h:203
S2OPC_COMMON_EXPORT const SOPC_CryptoProfile sopc_g_cpAes256Sha256RsaPss
SOPC_ReturnStatus FnSymmetricDecrypt(const SOPC_CryptoProvider *pProvider, const uint8_t *pInput, uint32_t lenCipherText, const SOPC_ExposedBuffer *pKey, const SOPC_ExposedBuffer *pIV, uint8_t *pOutput, uint32_t lenOutput)
Definition: sopc_crypto_profiles.h:121
FnAsymmetricVerify *const pFnAsymVerify
Definition: sopc_crypto_profiles.h:207
FnSymmetricEncrypt *const pFnSymmEncrypt
Definition: sopc_crypto_profiles.h:198
Defines the common declarations for the cryptographic objects.
S2OPC_COMMON_EXPORT const SOPC_CryptoProfile sopc_g_cpAes128Sha256RsaOaep
uint32_t asymLen_KeyMinBits
Definition: sopc_crypto_profiles.h:83
const char * name
Definition: sopc_crypto_profiles.h:72
SOPC_ReturnStatus FnSymmetricEncrypt(const SOPC_CryptoProvider *pProvider, const uint8_t *pInput, uint32_t lenPlainText, const SOPC_ExposedBuffer *pKey, const SOPC_ExposedBuffer *pIV, uint8_t *pOutput, uint32_t lenOutput)
Definition: sopc_crypto_profiles.h:114
S2OPC_COMMON_EXPORT const SOPC_CryptoProfile_PubSub sopc_g_cppsNone
FnSymmetricDecrypt *const pFnSymmDecrypt
Definition: sopc_crypto_profiles.h:199
SOPC_ReturnStatus FnPubSubCrypt(const SOPC_CryptoProvider *pProvider, const uint8_t *pInput, uint32_t lenInput, const SOPC_ExposedBuffer *pKey, const SOPC_ExposedBuffer *pKeyNonce, const SOPC_ExposedBuffer *pRandom, uint32_t uSequenceNumber, uint8_t *pOutput)
Definition: sopc_crypto_profiles.h:170
The SOPC_CryptoProvider context.
Definition: sopc_crypto_provider.h:47
FnGenerateRandom *const pFnGenRnd
Definition: sopc_crypto_profiles.h:225
FnAsymmetricDecrypt *const pFnAsymDecrypt
Definition: sopc_crypto_profiles.h:205
FnPubSubCrypt *const pFnCrypt
Definition: sopc_crypto_profiles.h:222
@ SOPC_SecurityPolicy_Invalid_ID
Definition: sopc_crypto_profiles.h:46
uint8_t secuPolicyWeight
Definition: sopc_crypto_profiles.h:75
SOPC_ReturnStatus FnAsymmetricDecrypt(const SOPC_CryptoProvider *pProvider, const uint8_t *pInput, uint32_t lenCipherText, const SOPC_AsymmetricKey *pKey, uint8_t *pOutput, uint32_t *lenWritten)
Definition: sopc_crypto_profiles.h:153
FnAsymmetricSign *const pFnAsymSign
Definition: sopc_crypto_profiles.h:206
const SOPC_SecurityPolicy_Config * SOPC_CryptoProfile_Get(const char *uri)
S2OPC_COMMON_EXPORT const SOPC_CryptoProfile_PubSub sopc_g_cppsPubSubAes256
uint32_t symmLen_KeyNonce
Definition: sopc_crypto_profiles.h:80
const SOPC_CryptoProfile_PubSub * SOPC_CryptoProfile_PubSub_Get(const char *uri)
@ SOPC_SecurityPolicy_PubSub_Aes256_ID
Definition: sopc_crypto_profiles.h:50
SOPC_ReturnStatus FnAsymmetricVerify(const SOPC_CryptoProvider *pProvider, const uint8_t *pInput, uint32_t lenInput, const SOPC_AsymmetricKey *pKey, const uint8_t *pSignature)
Definition: sopc_crypto_profiles.h:164
S2OPC_COMMON_EXPORT const SOPC_CryptoProfile sopc_g_cpNone
SOPC_ReturnStatus FnSymmetricSign(const SOPC_CryptoProvider *pProvider, const uint8_t *pInput, uint32_t lenInput, const SOPC_ExposedBuffer *pKey, uint8_t *pOutput)
Definition: sopc_crypto_profiles.h:128
uint32_t asymLen_KeyMaxBits
Definition: sopc_crypto_profiles.h:84
FnSymmetricVerify *const pFnSymmVerif
Definition: sopc_crypto_profiles.h:224
const SOPC_CryptoProfile * profile
Definition: sopc_crypto_profiles.h:73
The asymmetric key representation.
Definition: key_manager_lib.h:47
SOPC_CryptoProfiles gather pointers to cryptographic functions of the security policies of OPC UA Ser...
Definition: sopc_crypto_profiles.h:196
S2OPC_COMMON_EXPORT const SOPC_CryptoProfile sopc_g_cpBasic256Sha256
@ SOPC_SecurityPolicy_Basic256Sha256_ID
Definition: sopc_crypto_profiles.h:47
SOPC_CryptoProfiles_PubSub gather pointers to cryptographic functions of the security policies of OPC...
Definition: sopc_crypto_profiles.h:220
uint32_t symmLen_Block
Definition: sopc_crypto_profiles.h:79
uint8_t SOPC_ExposedBuffer
Definition: sopc_secret_buffer.h:36
SOPC_ReturnStatus FnDerivePseudoRandomData(const SOPC_CryptoProvider *pProvider, const SOPC_ExposedBuffer *pSecret, uint32_t lenSecret, const SOPC_ExposedBuffer *pSeed, uint32_t lenSeed, SOPC_ExposedBuffer *pOutput, uint32_t lenOutput)
Definition: sopc_crypto_profiles.h:141
uint32_t symmLen_SignKey
Definition: sopc_crypto_profiles.h:77
S2OPC_COMMON_EXPORT const SOPC_CryptoProfile sopc_g_cpBasic256
@ SOPC_SecurityPolicy_Aes128Sha256RsaOaep_ID
Definition: sopc_crypto_profiles.h:51
SOPC_ReturnStatus FnAsymmetricSign(const SOPC_CryptoProvider *pProvider, const uint8_t *pInput, uint32_t lenInput, const SOPC_AsymmetricKey *pKey, uint8_t *pSignature)
Definition: sopc_crypto_profiles.h:159
FnSymmetricVerify *const pFnSymmVerif
Definition: sopc_crypto_profiles.h:201
uint32_t secureChannelNonceLength
Definition: sopc_crypto_profiles.h:85
SecretBuffer (mangled key) and ExposedBuffer (contiguous deciphered buffered) APIs.
uint32_t symmLen_CryptoKey
Definition: sopc_crypto_profiles.h:76
SOPC_SecurityPolicy_ID
Definition: sopc_crypto_profiles.h:45
const bool isInvalid
Definition: sopc_crypto_profiles.h:71
FnSymmetricSign *const pFnSymmSign
Definition: sopc_crypto_profiles.h:200
const char * URI_SignAlgo
Definition: sopc_crypto_profiles.h:87
const char * uri
Definition: sopc_crypto_profiles.h:70
uint32_t asymLen_OAEP_Hash
Definition: sopc_crypto_profiles.h:82
SOPC_ReturnStatus
Definition: libs2opc_client.h:64
const SOPC_SecurityPolicy_ID SecurityPolicyID
Definition: sopc_crypto_profiles.h:197