![]() | Cryptographic Token Interface Standard |
PKCS#11 |
CK_GOSTR3410_KEY_WRAP_PARAMS is a structure that provides the parameters to the CKM_GOSTR3410_KEY_WRAP mechanism. It is defined as follows:
typedef struct CK_GOSTR3410_KEY_WRAP_PARAMS { CK_BYTE_PTR pWrapOID; CK_ULONG ulWrapOIDLen; CK_BYTE_PTR pUKM; CK_ULONG ulUKMLen; CK_OBJECT_HANDLE hKey; } CK_GOSTR3410_KEY_WRAP_PARAMS;
pWrapOID | pointer to a data with DER-encoding of the object identifier indicating the data object type of GOST 28147-89. If pointer takes NULL_PTR value in C_WrapKey operation then parameters are specified in object identifier of attribute CKA_GOSTR3411PARAMS must be used. For C_UnwrapKey operation the pointer is not used and must take NULL_PTR value anytime | |
ulWrapOIDLen | length of data with DER-encoding of the object identifier indicating the data object type of GOST 28147-89 | |
pUKM | pointer to a data with UKM. If pointer takes NULL_PTR value in C_WrapKey operation then random value of UKM will be used. If pointer takes non-NULL_PTR value in C_UnwrapKey operation then the pointer value will be compared with UKM value of wrapped key. If these two values do not match the wrapped key will be rejected | |
ulUKMLen | length of UKM data. If pUKM -pointer is different from NULL_PTR then equal to 8 | |
hKey | key handle. Key handle of a sender for C_WrapKey operation. Key handle of a receiver for C_UnwrapKey operation. When key handle takes CK_INVALID_HANDLE value then an ephemeral (one time) key pair of a sender will be used |
CK_GOSTR3410_DERIVE_PARAMS is a structure that provides the parameters to the CKM_GOSTR3410_DERIVE mechanism. It is defined as follows:
typedef struct CK_GOSTR3410_DERIVE_PARAMS { CK_EC_KDF_TYPE kdf; CK_BYTE_PTR pPublicData; CK_ULONG ulPublicDataLen; CK_BYTE_PTR pUKM; CK_ULONG ulUKMLen; } CK_GOSTR3410_DERIVE_PARAMS;
Footnote | Meaning |
ulPublicDataLen |
1 Public key of a receiver is an octet string of 64 bytes long. The public key octets correspond to the concatenation of X and Y coordinates of a point. Any one of them is 32 bytes long and represented in little endian order.