summaryrefslogtreecommitdiffstats
path: root/system/Attic/openssl.diff
diff options
context:
space:
mode:
Diffstat (limited to 'system/Attic/openssl.diff')
-rw-r--r--system/Attic/openssl.diff59
1 files changed, 59 insertions, 0 deletions
diff --git a/system/Attic/openssl.diff b/system/Attic/openssl.diff
new file mode 100644
index 0000000000..7ebc0a9d3a
--- /dev/null
+++ b/system/Attic/openssl.diff
@@ -0,0 +1,59 @@
+--- a/attic/crypto.pyx
++++ b/attic/crypto.pyx
+@@ -23,8 +23,9 @@ cdef extern from "openssl/evp.h":
+ pass
+ const EVP_MD *EVP_sha256()
+ const EVP_CIPHER *EVP_aes_256_ctr()
+- void EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *a)
+- void EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *a)
++ EVP_CIPHER_CTX *EVP_CIPHER_CTX_new()
++ const unsigned char *EVP_CIPHER_CTX_iv(const EVP_CIPHER_CTX *a)
++ void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *a)
+
+ int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher, ENGINE *impl,
+ const unsigned char *key, const unsigned char *iv)
+@@ -84,16 +85,16 @@ def get_random_bytes(n):
+ cdef class AES:
+ """A thin wrapper around the OpenSSL EVP cipher API
+ """
+- cdef EVP_CIPHER_CTX ctx
++ cdef EVP_CIPHER_CTX * ctx
+
+ def __cinit__(self, key, iv=None):
+- EVP_CIPHER_CTX_init(&self.ctx)
+- if not EVP_EncryptInit_ex(&self.ctx, EVP_aes_256_ctr(), NULL, NULL, NULL):
++ self.ctx = EVP_CIPHER_CTX_new();
++ if not EVP_EncryptInit_ex(self.ctx, EVP_aes_256_ctr(), NULL, NULL, NULL):
+ raise Exception('EVP_EncryptInit_ex failed')
+ self.reset(key, iv)
+
+ def __dealloc__(self):
+- EVP_CIPHER_CTX_cleanup(&self.ctx)
++ EVP_CIPHER_CTX_free(self.ctx)
+
+ def reset(self, key=None, iv=None):
+ cdef const unsigned char *key2 = NULL
+@@ -102,12 +103,12 @@ cdef class AES:
+ key2 = key
+ if iv:
+ iv2 = iv
+- if not EVP_EncryptInit_ex(&self.ctx, NULL, NULL, key2, iv2):
++ if not EVP_EncryptInit_ex(self.ctx, NULL, NULL, key2, iv2):
+ raise Exception('EVP_EncryptInit_ex failed')
+
+ @property
+ def iv(self):
+- return self.ctx.iv[:16]
++ return EVP_CIPHER_CTX_iv(self.ctx)[:16]
+
+ def encrypt(self, data):
+ cdef int inl = len(data)
+@@ -116,7 +117,7 @@ cdef class AES:
+ if not out:
+ raise MemoryError
+ try:
+- if not EVP_EncryptUpdate(&self.ctx, out, &outl, data, inl):
++ if not EVP_EncryptUpdate(self.ctx, out, &outl, data, inl):
+ raise Exception('EVP_EncryptUpdate failed')
+ return out[:inl]
+ finally: