CKM_SEED_CBC_PAD

Supported Operations

Encrypt and Decrypt Yes
Sign and Verify No
SignRecover and VerifyRecover No
Digest No
Generate Key/Key-Pair No
Wrap and Unwrap Yes
Derive No
Available in FIPS Mode No

Key Size Range (bytes) and Parameters

Minimum 16
Maximum 16
Parameter 16 bytes

Description

SEED-CBC with PKCS padding, denoted CKM_SEED_CBC_PAD, is a mechanism for single and multiple part encryption and decryption; key wrapping; and key unwrapping, based on the KISA (Korean Information Security Agency) SEED specification, cipher-block chaining mode and the block cipher padding method detailed in PKCS #7.

It has a single parameter; a 16-byte initialization vector.

The PKCS padding in this mechanism allows the length of the plaintext value to be recovered from the ciphertext value. Therefore, when unwrapping keys with this mechanism, no value should be specified for the CKA_VALUE_LEN attribute.

In addition to being able to wrap and unwrap secret keys, this mechanism can wrap and unwrap RSA, Diffie-Hellman, X9.42 Diffie-Hellman, and DSA private keys.

Constraints on key types and the length of data are summarized in the following table. The data length constraints do not apply to the wrapping and unwrapping of private keys.

Table 1: SEED-CBC with PKCS Padding: Key and Data Length
Function Key Type Input Length Output Length
C_Encrypt CKK_SEED Any This is the input length plus one, rounded up to a multiple of the block size.
C_Decrypt CKK_SEED Multiple of block size Between 1 and block size bytes shorter than input length.
C_WrapKey CKK_SEED Any This is the input length plus one, rounded up to a multiple of the block size.
C_UnwrapKey CKK_SEED Multiple of block size Between 1 and block length bytes shorter than input length.

Return to SafeNet ProtectToolkit-C Mechanisms