/// <summary> /// Encrypt data by SM4-CBC /// </summary> /// <param name="data"></param> /// <param name="key"></param> /// <param name="iv"></param> /// <returns></returns> public static byte[] Encrypt(byte[] data, byte[] key, byte[] iv) { var ctx = new SM4Context { IsPadding = true, Mode = SM4Core.SM4_ENCRYPT }; var sm4 = new SM4Core(); sm4.sm4_setkey_enc(ctx, key); return(sm4.sm4_crypt_cbc(ctx, iv, data)); }
/// <summary> /// Decrypt data by SM4-ECB /// </summary> /// <param name="data"></param> /// <param name="key"></param> /// <returns></returns> public static byte[] Decrypt(byte[] data, byte[] key) { var ctx = new SM4Context { IsPadding = true, Mode = SM4Core.SM4_DECRYPT }; var sm4 = new SM4Core(); sm4.sm4_setkey_dec(ctx, key); return(sm4.sm4_crypt_ecb(ctx, data)); }