Visible to Intel only — GUID: GUID-E5DB95A1-7A03-4299-AB0D-9E37A1769FBF
Visible to Intel only — GUID: GUID-E5DB95A1-7A03-4299-AB0D-9E37A1769FBF
SMS4EncryptCBC_CS
Encrypts plaintext in the CBC ciphertext stealing mode of the SMS4 block cipher.
Syntax
IppStatus ippsSMS4EncryptCBC_CS1(const Ipp8u* pSrc, Ipp8u* pDst, int len, const IppsSMS4Spec* pCtx, const Ipp8u* pIV);
IppStatus ippsSMS4EncryptCBC_CS2(const Ipp8u* pSrc, Ipp8u* pDst, int len, const IppsSMS4Spec* pCtx, const Ipp8u* pIV);
IppStatus ippsSMS4EncryptCBC_CS3(const Ipp8u* pSrc, Ipp8u* pDst, int len, const IppsSMS4Spec* pCtx, const Ipp8u* pIV);
Include Files
ippcp.h
Parameters
pSrc |
Pointer to the input plaintext data of variable length. |
pDst |
Pointer to the resulting ciphertext data. |
len |
Length of the input data stream in bytes. |
pCtx |
Pointer to the IppsSMS4Spec context. |
pIV |
Pointer to the initialization vector for the CBC mode operation. |
Description
These functions encrypt the input data stream according to the three variants of the Cipher Block Chaining (CBC) mode with Ciphertext Stealing (CS), as specified in NIST SP 800-38A A.. An important difference of these variants from the CBC mode without CS is that the number of bits in the input plaintext does not have to be a multiple of the block size.
The block size is 128 bits in accordance with SMS4.
Return Values
ippStsNoErr |
Indicates no error. Any other value indicates an error or warning. |
ippStsNullPtrErr |
Indicates an error condition if any of the specified pointers is NULL. |
ippStsLengthErr |
|
ippStsContextMatchErr |
Indicates an error condition if the context parameter does not match the operation. |