]> wagner.pp.ru Git - oss/ctypescrypto.git/commitdiff
Fixed setting MAC context options. Added setting 'ukm' options for derive of GOST...
authorVictor Wagner <wagner@atlas-card.ru>
Mon, 2 Mar 2015 14:10:41 +0000 (17:10 +0300)
committerVictor Wagner <wagner@atlas-card.ru>
Mon, 2 Mar 2015 14:10:41 +0000 (17:10 +0300)
ctypescrypto/mac.py
ctypescrypto/pkey.py
setup.py

index e5e8f55e8b4fcf1d0083cb53d8177a1de30a7001..48ade0948f91c4e45d6fb4a764cb45a858db1ebe 100644 (file)
@@ -65,7 +65,7 @@ class MAC(Digest):
                if self.digest_type is None:
                        self.digest_type=DigestType(Oid(libcrypto.EVP_MD_type(libcrypto.EVP_MD_CTX_md(self.ctx))))
                for (name,val) in kwargs.items():
-                       if EVP_PKEY_CTX_ctrl_str(ctx,name,val)<=0:
+                       if libcrypto.EVP_PKEY_CTX_ctrl_str(pctx,name,val)<=0:
                                raise DigestError("Unable to set mac parameter")
                self.digest_size = self.digest_type.digest_size()
                self.block_size = self.digest_type.block_size()
index 510ffcaa85ea395723ecc07ad337119b6bc43e57..c9d252a0d31be6a105357381f3c217081ca9e175 100644 (file)
@@ -129,9 +129,14 @@ class PKey(object):
                        raise PKeyError("Initailizing derive context")
                if libcrypto.EVP_PKEY_derive_init(ctx)<1:
                        raise PKeyError("derive_init")
-               self._configure_context(self,ctx,kwargs)
+
+               
+               self._configure_context(self,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:
+                               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")
@@ -262,7 +267,9 @@ libcrypto.EVP_PKEY_asn1_get0_info.argtypes=(POINTER(c_int),POINTER(c_int),POINTE
 libcrypto.EVP_PKEY_cmp.restype=c_int
 libcrypto.EVP_PKEY_cmp.argtypes=(c_void_p,c_void_p)
 libcrypto.EVP_PKEY_CTX_ctrl_str.restype=c_int
-libcrypto.EVP_PKEY_CTX_ctrl_str.argtypes=(c_void_p,)
+libcrypto.EVP_PKEY_CTX_ctrl_str.argtypes=(c_void_p,c_void_p,c_void_p)
+libcrypto.EVP_PKEY_CTX_ctrl.restype=c_int
+libcrypto.EVP_PKEY_CTX_ctrl.argtypes=(c_void_p,c_int,c_int,c_int,c_int,c_void_p)
 libcrypto.EVP_PKEY_CTX_free.argtypes=(c_void_p,)
 libcrypto.EVP_PKEY_CTX_new.restype=c_void_p
 libcrypto.EVP_PKEY_CTX_new.argtypes=(c_void_p,c_void_p)
index 634f049c5a896fcdd98745289938be52973e0f11..8f62662d17227f8ef18b47a6042137aaf5d2c5d2 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -33,7 +33,7 @@ class MyTests(distutils.cmd.Command):
 
 setup(
        name="ctypescrypto",
-       version="0.2.6",
+       version="0.2.7",
        description="CTypes-based interface for some OpenSSL libcrypto features",
        author="Victor Wagner",
        author_email="vitus@wagner.pp.ru",