示例#1
0
文件: dsa.py 项目: zhzyker/vulmap
    def __init__(self, backend, public_key, signature, algorithm):
        self._backend = backend
        self._public_key = public_key
        self._signature = signature
        self._algorithm = algorithm

        self._hash_ctx = hashes.Hash(self._algorithm, self._backend)
示例#2
0
 def fingerprint(self, algorithm):
     h = hashes.Hash(algorithm, self._backend)
     bio = self._backend._create_mem_bio_gc()
     res = self._backend._lib.i2d_X509_CRL_bio(bio, self._x509_crl)
     self._backend.openssl_assert(res == 1)
     der = self._backend._read_mem_bio(bio)
     h.update(der)
     return h.finalize()
示例#3
0
    def __init__(self, backend, private_key, padding, algorithm):
        self._backend = backend
        self._private_key = private_key

        # We now call _rsa_sig_determine_padding in _rsa_sig_setup. However
        # we need to make a pointless call to it here so we maintain the
        # API of erroring on init with this context if the values are invalid.
        _rsa_sig_determine_padding(backend, private_key, padding, algorithm)
        self._padding = padding
        self._algorithm = algorithm
        self._hash_ctx = hashes.Hash(self._algorithm, self._backend)
示例#4
0
文件: utils.py 项目: zhzyker/vulmap
def _calculate_digest_and_algorithm(backend, data, algorithm):
    if not isinstance(algorithm, Prehashed):
        hash_ctx = hashes.Hash(algorithm, backend)
        hash_ctx.update(data)
        data = hash_ctx.finalize()
    else:
        algorithm = algorithm._algorithm

    if len(data) != algorithm.digest_size:
        raise ValueError(
            "The provided data must be the same length as the hash "
            "algorithm's digest size.")

    return (data, algorithm)
示例#5
0
    def derive(self, key_material):
        if self._used:
            raise AlreadyFinalized
        self._used = True
        utils._check_byteslike("key_material", key_material)
        output = [b""]
        outlen = 0
        counter = 1

        while self._length > outlen:
            h = hashes.Hash(self._algorithm, self._backend)
            h.update(key_material)
            h.update(_int_to_u32be(counter))
            if self._sharedinfo is not None:
                h.update(self._sharedinfo)
            output.append(h.finalize())
            outlen += len(output[-1])
            counter += 1

        return b"".join(output)[:self._length]
示例#6
0
文件: ec.py 项目: zhzyker/vulmap
 def __init__(self, backend, public_key, signature, algorithm):
     self._backend = backend
     self._public_key = public_key
     self._signature = signature
     self._digest = hashes.Hash(algorithm, backend)
示例#7
0
文件: ec.py 项目: zhzyker/vulmap
 def __init__(self, backend, private_key, algorithm):
     self._backend = backend
     self._private_key = private_key
     self._digest = hashes.Hash(algorithm, backend)
示例#8
0
 def fingerprint(self, algorithm):
     h = hashes.Hash(algorithm, self._backend)
     h.update(self.public_bytes(serialization.Encoding.DER))
     return h.finalize()
示例#9
0
 def _hash(self):
     return hashes.Hash(self._algorithm, self._backend)
示例#10
0
文件: dsa.py 项目: zhzyker/vulmap
 def __init__(self, backend, private_key, algorithm):
     self._backend = backend
     self._private_key = private_key
     self._algorithm = algorithm
     self._hash_ctx = hashes.Hash(self._algorithm, self._backend)