From 3ddc0864d900227434283bfc5956e0c4342a6b01 Mon Sep 17 00:00:00 2001 From: Victor Wagner Date: Fri, 3 Apr 2015 19:38:33 +0300 Subject: [PATCH] fixed derive for GOST2001 --- ctypescrypto/pkey.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ctypescrypto/pkey.py b/ctypescrypto/pkey.py index c9d252a..56e8746 100644 --- a/ctypescrypto/pkey.py +++ b/ctypescrypto/pkey.py @@ -131,20 +131,20 @@ class PKey(object): raise PKeyError("derive_init") - self._configure_context(self,ctx,kwargs,["ukm"]) + self._configure_context(ctx,kwargs,["ukm"]) if libcrypto.EVP_PKEY_derive_set_peer(ctx,peerkey.key)<=0: raise PKeyError("Cannot set peer key") - if ukm in kwargs: - if libcrypto.EVP_PKEY_CTX_ctrl(ctx,-1,1<<10,8,0,kwargs[ukm])<=0: + if "ukm" in kwargs: + if libcrypto.EVP_PKEY_CTX_ctrl(ctx,-1,1<<10,8,8,kwargs["ukm"])<=0: raise PKeyError("Cannot set UKM") keylen=c_long(0) if libcrypto.EVP_PKEY_derive(ctx,None,byref(keylen))<=0: raise PKeyError("computing shared key length") - buf=create_string_buffer(keylen) + buf=create_string_buffer(keylen.value) if libcrypto.EVP_PKEY_derive(ctx,buf,byref(keylen))<=0: raise PKeyError("computing actual shared key") libcrypto.EVP_PKEY_CTX_free(ctx) - return buf.raw[:keylen] + return buf.raw[:keylen.value] @staticmethod def generate(algorithm,**kwargs): """ -- 2.39.2