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

FIPS-approved

No

Key Size Range (bytes) and Parameters

Minimum 16
FIPS Minimum

N/A

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 Tpe

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