def testOpenTypes(self): substrate = pem.readBase64fromText(self.cert_pem_text) asn1Object, rest = der_decoder(substrate, asn1Spec=self.asn1Spec, decodeOpenTypes=True) self.assertFalse(rest) self.assertTrue(asn1Object.prettyPrint()) self.assertEqual(substrate, der_encoder(asn1Object)) nai_realm_oid = rfc7585.id_on_naiRealm nai_realm_found = False for extn in asn1Object['tbsCertificate']['extensions']: if extn['extnID'] == rfc5280.id_ce_subjectAltName: extnValue, rest = der_decoder( extn['extnValue'], asn1Spec=rfc5280.SubjectAltName(), decodeOpenTypes=True) self.assertFalse(rest) self.assertTrue(extnValue.prettyPrint()) self.assertEqual(extn['extnValue'], der_encoder(extnValue)) for gn in extnValue: if gn['otherName'].hasValue(): self.assertEqual(nai_realm_oid, gn['otherName']['type-id']) self.assertIn('example', gn['otherName']['value']) nai_realm_found = True self.assertTrue(nai_realm_found)
def testOpenTypes(self): substrate = pem.readBase64fromText(self.cert_pem_text) asn1Object, rest = der_decoder(substrate, asn1Spec=self.asn1Spec, decodeOpenTypes=True) self.assertFalse(rest) self.assertTrue(asn1Object.prettyPrint()) self.assertEqual(substrate, der_encoder(asn1Object)) perm_id_oid = rfc4043.id_on_permanentIdentifier assigner_oid = univ.ObjectIdentifier('1.3.6.1.4.1.22112.48') permanent_identifier_found = False for extn in asn1Object['tbsCertificate']['extensions']: if extn['extnID'] == rfc5280.id_ce_subjectAltName: extnValue, rest = der_decoder( extn['extnValue'], asn1Spec=rfc5280.SubjectAltName(), decodeOpenTypes=True) self.assertFalse(rest) self.assertTrue(extnValue.prettyPrint()) self.assertEqual(extn['extnValue'], der_encoder(extnValue)) for gn in extnValue: if gn['otherName'].hasValue(): on = gn['otherName'] self.assertEqual(perm_id_oid, on['type-id']) self.assertEqual(assigner_oid, on['value']['assigner']) permanent_identifier_found = True self.assertTrue(permanent_identifier_found)
def testOpenTypes(self): substrate = pem.readBase64fromText(self.xmpp_server_cert_pem_text) asn1Object, rest = der_decoder(substrate, asn1Spec=self.asn1Spec, decodeOpenTypes=True) self.assertFalse(rest) self.assertTrue(asn1Object.prettyPrint()) self.assertEqual(substrate, der_encoder(asn1Object)) count = 0 for extn in asn1Object['tbsCertificate']['extensions']: if extn['extnID'] == rfc5280.id_ce_subjectAltName: extnValue, rest = der_decoder( extn['extnValue'], asn1Spec=rfc5280.SubjectAltName(), decodeOpenTypes=True) self.assertFalse(rest) self.assertTrue(extnValue.prettyPrint()) self.assertEqual(extn['extnValue'], der_encoder(extnValue)) for gn in extnValue: if gn['otherName'].hasValue(): if gn['otherName'][ 'type-id'] == rfc6120.id_on_xmppAddr: self.assertEqual('im.example.com', gn['otherName']['value']) count += 1 self.assertEqual(1, count)
def testDerCodec(self): substrate = pem.readBase64fromText(self.xmpp_server_cert_pem_text) asn1Object, rest = der_decoder(substrate, asn1Spec=self.asn1Spec) self.assertFalse(rest) self.assertTrue(asn1Object.prettyPrint()) self.assertEqual(substrate, der_encoder(asn1Object)) count = 0 otherNamesMap = opentypemap.get('otherNamesMap') for extn in asn1Object['tbsCertificate']['extensions']: if extn['extnID'] == rfc5280.id_ce_subjectAltName: extnValue, rest = der_decoder( extn['extnValue'], asn1Spec=rfc5280.SubjectAltName()) self.assertFalse(rest) self.assertTrue(extnValue.prettyPrint()) self.assertEqual(extn['extnValue'], der_encoder(extnValue)) for gn in extnValue: if gn['otherName'].hasValue(): gn_on = gn['otherName'] if gn_on['type-id'] == rfc6120.id_on_xmppAddr: self.assertIn(gn_on['type-id'], otherNamesMap) on, rest = der_decoder( gn_on['value'], asn1Spec=otherNamesMap[gn['otherName'] ['type-id']]) self.assertFalse(rest) self.assertTrue(on.prettyPrint()) self.assertEqual(gn_on['value'], der_encoder(on)) self.assertEqual('im.example.com', on) count += 1 self.assertEqual(1, count)
def testOpenTypes(self): substrate = pem.readBase64fromText(self.cert_pem_text) asn1Object, rest = der_decoder(substrate, asn1Spec=self.asn1Spec, decodeOpenTypes=True) self.assertFalse(rest) self.assertTrue(asn1Object.prettyPrint()) self.assertEqual(substrate, der_encoder(asn1Object)) found_PEPSI = False for extn in asn1Object['tbsCertificate']['extensions']: if extn['extnID'] == rfc5280.id_ce_subjectAltName: extnValue, rest = der_decoder( extn['extnValue'], asn1Spec=rfc5280.SubjectAltName(), decodeOpenTypes=True) self.assertFalse(rest) self.assertTrue(extnValue.prettyPrint()) self.assertEqual(extn['extnValue'], der_encoder(extnValue)) for gn in extnValue: if gn['otherName'].hasValue(): pepsi = gn['otherName']['value']['pEPSI'] self.assertEqual('e6809ff3ea', pepsi.prettyPrint()[2:12]) found_PEPSI = True self.assertTrue(found_PEPSI)
def testDerCodec(self): substrate = pem.readBase64fromText(self.cert_pem_text) asn1Object, rest = der_decoder(substrate, asn1Spec=self.asn1Spec) self.assertFalse(rest) self.assertTrue(asn1Object.prettyPrint()) self.assertEqual(substrate, der_encoder(asn1Object)) found_PEPSI = False otherNamesMap = opentypemap.get('otherNamesMap') for extn in asn1Object['tbsCertificate']['extensions']: if extn['extnID'] == rfc5280.id_ce_subjectAltName: extnValue, rest = der_decoder( extn['extnValue'], asn1Spec=rfc5280.SubjectAltName()) self.assertFalse(rest) self.assertTrue(extnValue.prettyPrint()) self.assertEqual(extn['extnValue'], der_encoder(extnValue)) for gn in extnValue: if gn['otherName'].hasValue(): gn_on = gn['otherName'] if gn_on['type-id'] == rfc4683.id_on_SIM: self.assertIn(gn_on['type-id'], otherNamesMap) on, rest = der_decoder( gn_on['value'], asn1Spec=otherNamesMap[gn_on['type-id']]) self.assertFalse(rest) self.assertTrue(on.prettyPrint()) self.assertEqual(gn_on['value'], der_encoder(on)) self.assertEqual('e6809ff3ea', on['pEPSI'].prettyPrint()[2:12]) found_PEPSI = True self.assertTrue(found_PEPSI)
def testDerCodec(self): substrate = pem.readBase64fromText(self.cert_pem_text) asn1Object, rest = der_decoder(substrate, asn1Spec=self.asn1Spec) self.assertFalse(rest) self.assertTrue(asn1Object.prettyPrint()) self.assertEqual(substrate, der_encoder(asn1Object)) counter = 0 for extn in asn1Object['tbsCertificate']['extensions']: if extn['extnID'] == rfc5280.id_ce_extKeyUsage: ekus, rest = der_decoder(extn['extnValue'], asn1Spec=rfc5280.ExtKeyUsageSyntax()) self.assertFalse(rest) self.assertTrue(ekus.prettyPrint()) self.assertEqual(extn['extnValue'], der_encoder(ekus)) self.assertIn(rfc9174.id_kp_bundleSecurity, ekus) counter += 1 if extn['extnID'] == rfc5280.id_ce_subjectAltName: san, rest = der_decoder(extn['extnValue'], asn1Spec=rfc5280.SubjectAltName()) self.assertFalse(rest) self.assertTrue(san.prettyPrint()) self.assertEqual(der_encoder(san), extn['extnValue']) for gn in san: if gn['otherName'].hasValue(): self.assertEqual(rfc9174.id_on_bundleEID, gn['otherName']['type-id']) on, rest = der_decoder(gn['otherName']['value'], asn1Spec=rfc9174.BundleEID()) self.assertFalse(rest) self.assertTrue(on.prettyPrint()) self.assertEqual(der_encoder(on), gn['otherName']['value']) self.assertIn('node001', on) counter += 1 self.assertEqual(2, counter)