35 lines
693 B
C++
35 lines
693 B
C++
#ifndef SM4_H
|
|
#define SM4_H
|
|
|
|
#define SM4_ENCRYPT 1
|
|
#define SM4_DECRYPT 0
|
|
|
|
typedef struct
|
|
{
|
|
int mode;
|
|
unsigned long sk[32];
|
|
}
|
|
sm4_context;
|
|
|
|
class SM4
|
|
{
|
|
public:
|
|
static void sm4_setkey_enc(sm4_context* ctx, unsigned char key[16]);
|
|
|
|
static void sm4_setkey_dec(sm4_context* ctx, unsigned char key[16]);
|
|
|
|
static void sm4_crypt_ecb(sm4_context* ctx,
|
|
int mode,
|
|
int length,
|
|
unsigned char* input,
|
|
unsigned char* output);
|
|
static void sm4_crypt_cbc(sm4_context* ctx,
|
|
int mode,
|
|
int length,
|
|
unsigned char iv[16],
|
|
unsigned char* input,
|
|
unsigned char* output);
|
|
};
|
|
|
|
#endif /* sm4.h */
|