Пример #1
0
void enc_gost(char *set_hash,char *in,char *out,int n_blocks){
	  gost_ctx *c=(gost_ctx *)malloc(sizeof(gost_ctx));
	  gost_subst_block *b=NULL;
	  gost_init(c,b);
	  gost_key(c,(byte *)set_hash);
	  	  gost_enc(c,(byte *)in,(byte *)out,n_blocks);
	free(c);}
Пример #2
0
int keyWrapCryptoPro(gost_ctx *ctx,const unsigned char *keyExchangeKey, const unsigned char *ukm,
	const	unsigned char *sessionKey, unsigned char *wrappedKey) 
	{
	unsigned char kek_ukm[32];
	keyDiversifyCryptoPro(ctx,keyExchangeKey,ukm,kek_ukm);
	gost_key(ctx,kek_ukm);
	memcpy(wrappedKey,ukm,8);
	gost_enc(ctx,sessionKey,wrappedKey+8,4);
	gost_mac_iv(ctx,32,ukm,sessionKey,32,wrappedKey+40);
	return 1;
	}