def test_cert_parse_elements(self): for key, cert in KEY_FILE_PAIRS: data = self.data[cert] dict = x509_pem.parse(data) self.assertEqual(dict['subject'], X509_SUBJECT) for part, dtype in X509_PARTS: self.assertTrue(part in dict) self.assertTrue(isinstance(dict[part], dtype))
def test_cert_parse(self): for key, cert in KEY_FILE_PAIRS: data = self.data[cert] self.assertTrue(data) dict = x509_pem.parse(data) self.assertTrue(dict) # 20 chars is enough of a sanity check self.assertTrue(dict['body'][:20] in data) self.assertEqual(dict['type'], "X509 CERTIFICATE")
def setUp(self): self.dicts = {} for key, cert in KEY_FILE_PAIRS: with open(key, "r") as f: data = f.read() self.dicts[key] = rsa_pem.parse(data) with open(cert, "r") as f: data = f.read() self.dicts[cert] = x509_pem.parse(data)
def setUp(self): self.keys = {} for key, cert in KEY_FILE_PAIRS: with open(key, "r") as f: data = f.read() dict = rsa_pem.parse(data) t = rsa_pem.dict_to_tuple(dict) self.keys[key] = RSA.construct(t) with open(cert, "r") as f: data = f.read() dict = x509_pem.parse(data) t = x509_pem.dict_to_tuple(dict) self.keys[cert] = RSA.construct(t)
def parse(data): """Return parsed dictionary from parsed PEM file; based on header. Args: data: str of PEM file data Returns: {str:str} as returned from appropriate *_parse parser """ if "RSA PRIVATE" in data: dict = rsa_pem.parse(data) elif "CERTIFICATE" in data: dict = x509_pem.parse(data) else: raise Exception("PEM data type not supported.") return dict
def get_public_key(cert): from x509_pem import parse cert_dict = parse(cert) return cert_dict['modulus'], cert_dict['publicExponent']