Python pyasn1.type.univ.BitString() Examples
The following are 7
code examples of pyasn1.type.univ.BitString().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
pyasn1.type.univ
, or try the search function
.
Example #1
Source File: extensions.py From oss-ftp with MIT License | 6 votes |
def _key_identifier_from_public_key(public_key): # This is a very slow way to do this. serialized = public_key.public_bytes( serialization.Encoding.DER, serialization.PublicFormat.SubjectPublicKeyInfo ) spki, remaining = decoder.decode( serialized, asn1Spec=_SubjectPublicKeyInfo() ) assert not remaining # the univ.BitString object is a tuple of bits. We need bytes and # pyasn1 really doesn't want to give them to us. To get it we'll # build an integer and convert that to bytes. bits = 0 for bit in spki.getComponentByName("subjectPublicKey"): bits = bits << 1 | bit data = utils.int_to_bytes(bits) return hashlib.sha1(data).digest()
Example #2
Source File: ca.py From pymobiledevice with GNU General Public License v3.0 | 6 votes |
def convertPKCS1toPKCS8pubKey(bitsdata): pubkey_pkcs1_b64 = b''.join(bitsdata.split(b'\n')[1:-2]) pubkey_pkcs1, restOfInput = der_decoder.decode(base64.b64decode(pubkey_pkcs1_b64)) bitstring = univ.Sequence() bitstring.setComponentByPosition(0, univ.Integer(pubkey_pkcs1[0])) bitstring.setComponentByPosition(1, univ.Integer(pubkey_pkcs1[1])) bitstring = der_encoder.encode(bitstring) try: bitstring = ''.join([('00000000'+bin(ord(x))[2:])[-8:] for x in list(bitstring)]) except: bitstring = ''.join([('00000000'+bin(x)[2:])[-8:] for x in list(bitstring)]) bitstring = univ.BitString("'%s'B" % bitstring) pubkeyid = univ.Sequence() pubkeyid.setComponentByPosition(0, univ.ObjectIdentifier('1.2.840.113549.1.1.1')) # == OID for rsaEncryption pubkeyid.setComponentByPosition(1, univ.Null('')) pubkey_seq = univ.Sequence() pubkey_seq.setComponentByPosition(0, pubkeyid) pubkey_seq.setComponentByPosition(1, bitstring) base64.MAXBINSIZE = (64//4)*3 res = b"-----BEGIN PUBLIC KEY-----\n" res += base64.encodestring(der_encoder.encode(pubkey_seq)) res += b"-----END PUBLIC KEY-----\n" return res
Example #3
Source File: extensions.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 5 votes |
def _key_identifier_from_public_key(public_key): if isinstance(public_key, RSAPublicKey): data = public_key.public_bytes( serialization.Encoding.DER, serialization.PublicFormat.PKCS1, ) elif isinstance(public_key, EllipticCurvePublicKey): data = public_key.public_numbers().encode_point() else: # This is a very slow way to do this. serialized = public_key.public_bytes( serialization.Encoding.DER, serialization.PublicFormat.SubjectPublicKeyInfo ) spki, remaining = decoder.decode( serialized, asn1Spec=_SubjectPublicKeyInfo() ) assert not remaining # the univ.BitString object is a tuple of bits. We need bytes and # pyasn1 really doesn't want to give them to us. To get it we'll # build an integer and convert that to bytes. bits = 0 for bit in spki.getComponentByName("subjectPublicKey"): bits = bits << 1 | bit data = utils.int_to_bytes(bits) return hashlib.sha1(data).digest()
Example #4
Source File: ASN1.py From peach with Mozilla Public License 2.0 | 5 votes |
def realEncode(self, data): return der.encoder.encode(univ.BitString(data))
Example #5
Source File: ASN1.py From peach with Mozilla Public License 2.0 | 5 votes |
def realEncode(self, data): return ber.encoder.encode(univ.BitString(data))
Example #6
Source File: ASN1.py From peach with Mozilla Public License 2.0 | 5 votes |
def realEncode(self, data): return cer.encoder.encode(univ.BitString(data))
Example #7
Source File: _asn1.py From python-jose with MIT License | 5 votes |
def rsa_public_key_pkcs1_to_pkcs8(pkcs1_key): """Convert a PKCS1-encoded RSA private key to PKCS8.""" algorithm = RsaAlgorithmIdentifier() algorithm["rsaEncryption"] = RSA_ENCRYPTION_ASN1_OID pkcs8_key = PublicKeyInfo() pkcs8_key["algorithm"] = algorithm pkcs8_key["publicKey"] = univ.BitString.fromOctetString(pkcs1_key) return encoder.encode(pkcs8_key)