Add full PSK trace support
[openssl.git] / engines / ccgost / gost89.h
index 8da2407b03320a6f6117f418c89fe78282f8ce99..e5b877f4482d6536952e77d88ab8873482ce5395 100644 (file)
@@ -6,78 +6,84 @@
  *          Declarations for GOST 28147-89 encryption algorithm       *
  *            No OpenSSL libraries required to compile and use        *
  *                       this code                                    *
- **********************************************************************/            
+ **********************************************************************/
 #ifndef GOST89_H
-#define GOST89_H
+# define GOST89_H
 
 /* Typedef for unsigned 32-bit integer */
-#if __LONG_MAX__ > 2147483647L 
-typedef unsigned int u4; 
-#else 
-typedef unsigned long u4; 
-#endif 
+# if __LONG_MAX__ > 2147483647L
+typedef unsigned int u4;
+# else
+typedef unsigned long u4;
+# endif
 /* Typedef for unsigned 8-bit integer */
-typedef unsigned char byte; 
+typedef unsigned char byte;
 
 /* Internal representation of GOST substitution blocks */
 typedef struct {
-               byte k8[16];
-               byte k7[16];
-               byte k6[16];
-               byte k5[16];
-               byte k4[16];
-               byte k3[16];
-               byte k2[16];
-               byte k1[16];
-} gost_subst_block;            
-
+    byte k8[16];
+    byte k7[16];
+    byte k6[16];
+    byte k5[16];
+    byte k4[16];
+    byte k3[16];
+    byte k2[16];
+    byte k1[16];
+} gost_subst_block;
 
 /* Cipher context includes key and preprocessed  substitution block */
-typedef struct { 
-               u4 k[8]; 
-               /* Constant s-boxes -- set up in gost_init(). */ 
-               u4 k87[256],k65[256],k43[256],k21[256]; 
-} gost_ctx; 
-/* Note: encrypt and decrypt expect full blocks--padding blocks is 
-         caller's responsibility. All bulk encryption is done in 
-                ECB mode by these calls. Other modes may be added easily 
-                enough.                                            */
+typedef struct {
+    u4 k[8];
+    /* Constant s-boxes -- set up in gost_init(). */
+    u4 k87[256], k65[256], k43[256], k21[256];
+} gost_ctx;
+/*
+ * Note: encrypt and decrypt expect full blocks--padding blocks is caller's
+ * responsibility. All bulk encryption is done in ECB mode by these calls.
+ * Other modes may be added easily enough.
+ */
 /* Encrypt several full blocks in ECB mode */
-void gost_enc(gost_ctx *ctx, const byte *clear,byte *cipher, int blocks); 
+void gost_enc(gost_ctx * ctx, const byte * clear, byte * cipher, int blocks);
 /* Decrypt several full blocks in ECB mode */
-void gost_dec(gost_ctx *ctx, const byte *cipher,byte *clear, int blocks); 
+void gost_dec(gost_ctx * ctx, const byte * cipher, byte * clear, int blocks);
 /* Encrypts several full blocks in CFB mode using 8byte IV */
-void gost_enc_cfb(gost_ctx *ctx,const byte *iv,const byte *clear,byte *cipher,int  blocks);
+void gost_enc_cfb(gost_ctx * ctx, const byte * iv, const byte * clear,
+                  byte * cipher, int blocks);
 /* Decrypts several full blocks in CFB mode using 8byte IV */
-void gost_dec_cfb(gost_ctx *ctx,const byte *iv,const byte *cipher,byte *clear,int  blocks);
+void gost_dec_cfb(gost_ctx * ctx, const byte * iv, const byte * cipher,
+                  byte * clear, int blocks);
 
 /* Encrypt one  block */
-void gostcrypt(gost_ctx *c, const byte *in, byte *out);
+void gostcrypt(gost_ctx * c, const byte * in, byte * out);
 /* Decrypt one  block */
-void gostdecrypt(gost_ctx *c, const byte *in,byte *out);
+void gostdecrypt(gost_ctx * c, const byte * in, byte * out);
 /* Set key into context */
-void gost_key(gost_ctx *ctx, const byte *key); 
+void gost_key(gost_ctx * ctx, const byte * key);
 /* Get key from context */
-void gost_get_key(gost_ctx *ctx, byte *key);
+void gost_get_key(gost_ctx * ctx, byte * key);
 /* Set S-blocks into context */
-void gost_init(gost_ctx *ctx, const gost_subst_block *subst_block); 
+void gost_init(gost_ctx * ctx, const gost_subst_block * subst_block);
 /* Clean up context */
-void gost_destroy(gost_ctx *ctx);
+void gost_destroy(gost_ctx * ctx);
 /* Intermediate function used for calculate hash */
-void gost_enc_with_key(gost_ctx *,byte *key,byte *inblock,byte *outblock);
+void gost_enc_with_key(gost_ctx *, byte * key, byte * inblock,
+                       byte * outblock);
 /* Compute MAC of given length in bits from data */
-int gost_mac(gost_ctx *ctx,int hmac_len,const unsigned char *data,
-               unsigned int data_len,unsigned char *hmac) ;
-/* Compute MAC of given length in bits from data, using non-zero 8-byte
- * IV (non-standard, for use in CryptoPro key transport only */
-int gost_mac_iv(gost_ctx *ctx,int hmac_len,const unsigned char *iv,const unsigned char *data,
-               unsigned int data_len,unsigned char *hmac) ;
+int gost_mac(gost_ctx * ctx, int hmac_len, const unsigned char *data,
+             unsigned int data_len, unsigned char *hmac);
+/*
+ * Compute MAC of given length in bits from data, using non-zero 8-byte IV
+ * (non-standard, for use in CryptoPro key transport only
+ */
+int gost_mac_iv(gost_ctx * ctx, int hmac_len, const unsigned char *iv,
+                const unsigned char *data, unsigned int data_len,
+                unsigned char *hmac);
 /* Perform one step of MAC calculation like gostcrypt */
-void mac_block(gost_ctx *c,byte *buffer,const  byte *block); 
+void mac_block(gost_ctx * c, byte * buffer, const byte * block);
 /* Extracts MAC value from mac state buffer */
-void get_mac(byte *buffer,int nbits,byte *out);
+void get_mac(byte * buffer, int nbits, byte * out);
 /* Implements cryptopro key meshing algorithm. Expect IV to be 8-byte size*/
-void cryptopro_key_meshing(gost_ctx *ctx, unsigned char *iv);
+void cryptopro_key_meshing(gost_ctx * ctx, unsigned char *iv);
 /* Parameter sets specified in RFC 4357 */
 extern gost_subst_block GostR3411_94_TestParamSet;
 extern gost_subst_block GostR3411_94_CryptoProParamSet;
@@ -86,7 +92,7 @@ extern gost_subst_block Gost28147_CryptoProParamSetA;
 extern gost_subst_block Gost28147_CryptoProParamSetB;
 extern gost_subst_block Gost28147_CryptoProParamSetC;
 extern gost_subst_block Gost28147_CryptoProParamSetD;
-extern const byte CryptoProKeyMeshingKey[]; 
-typedef unsigned int word32; 
+extern const byte CryptoProKeyMeshingKey[];
+typedef unsigned int word32;
 
 #endif