# @param filename name of file to store the keypair in
def save_to_file(self, filename):
- with open(filename, 'w') as output:
+ with open(filename, 'wb') as output:
output.write(self.as_pem())
self.filename = filename
# public key.
def load_from_file(self, filename):
+ logger.info(f"opening {filename} from certficate.load_from_file")
self.filename = filename
buffer = open(filename, 'r').read()
self.load_from_string(buffer)
OpenSSL.crypto.FILETYPE_PEM, string,
functools.partial(glo_passphrase_callback, self, string))
self.m2key = M2Crypto.EVP.load_key_string(
- string, functools.partial(glo_passphrase_callback,
- self, string))
+ string.encode(encoding="utf-8"),
+ functools.partial(glo_passphrase_callback, self, string))
else:
self.key = OpenSSL.crypto.load_privatekey(
OpenSSL.crypto.FILETYPE_PEM, string)
- self.m2key = M2Crypto.EVP.load_key_string(string)
+ self.m2key = M2Crypto.EVP.load_key_string(
+ string.encode(encoding="utf-8"))
##
# Load the public key from a string. No private key is loaded.
def get_m2_pubkey(self):
import M2Crypto
if not self.m2key:
- self.m2key = M2Crypto.EVP.load_key_string(self.as_pem())
+ self.m2key = M2Crypto.EVP.load_key_string(
+ self.as_pem().encode(encoding="utf-8"))
return self.m2key
##
# raise "Cannot add extension {} which had val {} with new val {}"\
# .format(name, oldExtVal, value)
+ if isinstance(name, str):
+ name = name.encode()
+ if isinstance(value, str):
+ value = value.encode()
+
ext = OpenSSL.crypto.X509Extension(name, critical, value)
self.x509.add_extensions([ext])