예제 #1
0
    def sign(self, pki_obj, data):
        new_pki = deepcopy(pki_obj)
        new_pki.hash_obj = self.hash_obj

        r, s = new_pki.sign(data)
        seq = SequenceOf()
        seq.extend([Integer(r), Integer(s)])
        return BitString(Bytes(encoder.encode(seq)).int())
예제 #2
0
    def encode(dsa_key):
        seq_of = SequenceOf()
        seq_of.extend(
            [Integer(dsa_key.p),
             Integer(dsa_key.q),
             Integer(dsa_key.g)])

        return seq_of
예제 #3
0
    def encode(ecdsa_key: object, **kwargs):
        curve_seq = [
            ObjectIdentifier([1, 2, 840, 10045, 2, 1]),
            X509ECDSAParams.encode(ecdsa_key)
        ]

        encoded = SequenceOf()
        encoded.extend(curve_seq)

        top_seq = Sequence()
        top_seq.setComponentByPosition(0, encoded)
        top_seq.setComponentByPosition(
            1, X509ECDSASubjectPublicKey.encode(ecdsa_key))

        encoded = encoder.encode(top_seq)
        return X509ECDSAPublicKey.transport_encode(encoded, **kwargs)