當前位置: 首頁>>代碼示例>>Python>>正文


Python ecdsa.keys方法代碼示例

本文整理匯總了Python中ecdsa.keys方法的典型用法代碼示例。如果您正苦於以下問題:Python ecdsa.keys方法的具體用法?Python ecdsa.keys怎麽用?Python ecdsa.keys使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在ecdsa的用法示例。


在下文中一共展示了ecdsa.keys方法的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: test_dictionary_verification

# 需要導入模塊: import ecdsa [as 別名]
# 或者: from ecdsa import keys [as 別名]
def test_dictionary_verification(self):
		test_data = {}
		for _ in range(5):
			test_data['_' + utilities.random_string(10)] = utilities.random_string(10)
		self.sk = security_keys.SigningKey.generate(curve=ecdsa.NIST521p)
		test_data = self.sk.sign_dict(test_data, signature_encoding='base64')
		self.assertIsInstance(test_data, dict)
		# make sure the 'signature' key was added
		self.assertIn('signature', test_data)
		self.assertEqual(len(test_data), 6)

		try:
			binascii.a2b_base64(test_data['signature'])
		except ValueError:
			self.fail('signature could not be decoded as base64')

		vk = self.sk.get_verifying_key()
		vk.verify_dict(test_data, signature_encoding='base64')

		test_data['_' + utilities.random_string(10)] = utilities.random_string(10)
		with self.assertRaises(ecdsa.keys.BadSignatureError):
			vk.verify_dict(test_data, signature_encoding='base64') 
開發者ID:rsmusllp,項目名稱:king-phisher,代碼行數:24,代碼來源:security_keys.py

示例2: _load_key_store

# 需要導入模塊: import ecdsa [as 別名]
# 或者: from ecdsa import keys [as 別名]
def _load_key_store(self, file_name):
		file_path = find.data_file(file_name)
		if not file_path:
			return 0
		with open(file_path, 'r') as file_h:
			key_store = serializers.JSON.load(file_h)
		utilities.validate_json_schema(key_store, 'king-phisher.security')
		key_store = key_store['keys']
		loaded = 0
		for key_idx, key in enumerate(key_store, 1):
			identifier = key['id']
			if identifier in self.keys:
				self.logger.warning("skipping loading {0}:{1} due to a duplicate id".format(file_name, key_idx))
				continue
			verifying_key = key['verifying-key']
			key['verifying-key'] = VerifyingKey.from_dict(verifying_key, encoding=verifying_key.pop('encoding', 'base64'))
			self.keys[identifier] = key
			self.logger.debug("loaded key id: {0} from: {1}".format(identifier, file_path))
			loaded += 1
		return loaded 
開發者ID:rsmusllp,項目名稱:king-phisher,代碼行數:22,代碼來源:security_keys.py

示例3: _find_candidate_keys

# 需要導入模塊: import ecdsa [as 別名]
# 或者: from ecdsa import keys [as 別名]
def _find_candidate_keys(keys, rrsig):
    candidate_keys = []
    value = keys.get(rrsig.signer)
    if value is None:
        return None
    if isinstance(value, dns.node.Node):
        try:
            rdataset = value.find_rdataset(dns.rdataclass.IN,
                                           dns.rdatatype.DNSKEY)
        except KeyError:
            return None
    else:
        rdataset = value
    for rdata in rdataset:
        if rdata.algorithm == rrsig.algorithm and \
                key_id(rdata) == rrsig.key_tag:
            candidate_keys.append(rdata)
    return candidate_keys 
開發者ID:elgatito,項目名稱:script.elementum.burst,代碼行數:20,代碼來源:dnssec.py

示例4: _find_candidate_keys

# 需要導入模塊: import ecdsa [as 別名]
# 或者: from ecdsa import keys [as 別名]
def _find_candidate_keys(keys, rrsig):
    candidate_keys = []
    value = keys.get(rrsig.signer)
    if value is None:
        return None
    if isinstance(value, thirdparty.dns.node.Node):
        try:
            rdataset = value.find_rdataset(thirdparty.dns.rdataclass.IN,
                                           thirdparty.dns.rdatatype.DNSKEY)
        except KeyError:
            return None
    else:
        rdataset = value
    for rdata in rdataset:
        if rdata.algorithm == rrsig.algorithm and \
                key_id(rdata) == rrsig.key_tag:
            candidate_keys.append(rdata)
    return candidate_keys 
開發者ID:MrH0wl,項目名稱:Cloudmare,代碼行數:20,代碼來源:dnssec.py

示例5: openssl_derive_key_and_iv

# 需要導入模塊: import ecdsa [as 別名]
# 或者: from ecdsa import keys [as 別名]
def openssl_derive_key_and_iv(password, salt, key_length, iv_length, digest='sha256', encoding='utf-8'):
	"""
	Derive an encryption key and initialization vector (IV) in the same way as
	OpenSSL.

	.. note::
		Different versions of OpenSSL use a different default value for the
		*digest* function used to derive keys and initialization vectors. A
		specific one can be used by passing the ``-md`` option to the
		``openssl`` command which corresponds to the *digest* parameter of this
		function.

	:param str password: The password to use when deriving the key and IV.
	:param bytes salt: A value to use as a salt for the operation.
	:param int key_length: The length in bytes of the key to return.
	:param int iv_length: The length in bytes of the IV to return.
	:param str digest: The name of hashing function to use to generate the key.
	:param str encoding: The name of the encoding to use for the password.
	:return: The key and IV as a tuple.
	:rtype: tuple
	"""
	password = password.encode(encoding)
	digest_function = getattr(hashlib, digest)
	chunk = b''
	data = b''
	while len(data) < key_length + iv_length:
		chunk = digest_function(chunk + password + salt).digest()
		data += chunk
	return data[:key_length], data[key_length:key_length + iv_length] 
開發者ID:rsmusllp,項目名稱:king-phisher,代碼行數:31,代碼來源:security_keys.py

示例6: __init__

# 需要導入模塊: import ecdsa [as 別名]
# 或者: from ecdsa import keys [as 別名]
def __init__(self):
		self.keys = utilities.FreezableDict()
		"""The dictionary of the loaded security keys, keyed by their identity string."""
		if not self._load_key_store('security.json'):
			raise RuntimeError('failed to load any keys from the primary store')
		self._load_key_store('security.local.json')
		self.keys.freeze()
		self.logger.info("security key store initialized with {0:,} keys".format(len(self.keys))) 
開發者ID:rsmusllp,項目名稱:king-phisher,代碼行數:10,代碼來源:security_keys.py

示例7: _get_verifying_key

# 需要導入模塊: import ecdsa [as 別名]
# 或者: from ecdsa import keys [as 別名]
def _get_verifying_key(self, key_id):
		key = self.keys.get(key_id)
		if key is None:
			self.logger.warning("verification of data with key {0} failed (unknown key)".format(key_id))
			raise ecdsa.keys.BadSignatureError('unknown key for signature')
		verifying_key = key.get('verifying-key')
		if verifying_key is None:
			self.logger.warning("verification of data with key {0} failed (missing verifying-key)".format(key_id))
			raise ecdsa.keys.BadSignatureError('unknown key for signature')
		return verifying_key 
開發者ID:rsmusllp,項目名稱:king-phisher,代碼行數:12,代碼來源:security_keys.py

示例8: _validate

# 需要導入模塊: import ecdsa [as 別名]
# 或者: from ecdsa import keys [as 別名]
def _validate(rrset, rrsigset, keys, origin=None, now=None):
    """Validate an RRset

    @param rrset: The RRset to validate
    @type rrset: dns.rrset.RRset or (dns.name.Name, dns.rdataset.Rdataset)
    tuple
    @param rrsigset: The signature RRset
    @type rrsigset: dns.rrset.RRset or (dns.name.Name, dns.rdataset.Rdataset)
    tuple
    @param keys: The key dictionary.
    @type keys: a dictionary keyed by dns.name.Name with node or rdataset
    values
    @param origin: The origin to use for relative names
    @type origin: dns.name.Name or None
    @param now: The time to use when validating the signatures.  The default
    is the current time.
    @type now: int
    """

    if isinstance(origin, string_types):
        origin = dns.name.from_text(origin, dns.name.root)

    if isinstance(rrset, tuple):
        rrname = rrset[0]
    else:
        rrname = rrset.name

    if isinstance(rrsigset, tuple):
        rrsigname = rrsigset[0]
        rrsigrdataset = rrsigset[1]
    else:
        rrsigname = rrsigset.name
        rrsigrdataset = rrsigset

    rrname = rrname.choose_relativity(origin)
    rrsigname = rrname.choose_relativity(origin)
    if rrname != rrsigname:
        raise ValidationFailure("owner names do not match")

    for rrsig in rrsigrdataset:
        try:
            _validate_rrsig(rrset, rrsig, keys, origin, now)
            return
        except ValidationFailure:
            pass
    raise ValidationFailure("no RRSIGs validated") 
開發者ID:elgatito,項目名稱:script.elementum.burst,代碼行數:48,代碼來源:dnssec.py

示例9: _validate

# 需要導入模塊: import ecdsa [as 別名]
# 或者: from ecdsa import keys [as 別名]
def _validate(rrset, rrsigset, keys, origin=None, now=None):
    """Validate an RRset

    @param rrset: The RRset to validate
    @type rrset: thirdparty.dns.rrset.RRset or (thirdparty.dns.name.Name, thirdparty.dns.rdataset.Rdataset)
    tuple
    @param rrsigset: The signature RRset
    @type rrsigset: thirdparty.dns.rrset.RRset or (thirdparty.dns.name.Name, thirdparty.dns.rdataset.Rdataset)
    tuple
    @param keys: The key dictionary.
    @type keys: a dictionary keyed by thirdparty.dns.name.Name with node or rdataset
    values
    @param origin: The origin to use for relative names
    @type origin: thirdparty.dns.name.Name or None
    @param now: The time to use when validating the signatures.  The default
    is the current time.
    @type now: int
    """

    if isinstance(origin, string_types):
        origin = thirdparty.dns.name.from_text(origin, thirdparty.dns.name.root)

    if isinstance(rrset, tuple):
        rrname = rrset[0]
    else:
        rrname = rrset.name

    if isinstance(rrsigset, tuple):
        rrsigname = rrsigset[0]
        rrsigrdataset = rrsigset[1]
    else:
        rrsigname = rrsigset.name
        rrsigrdataset = rrsigset

    rrname = rrname.choose_relativity(origin)
    rrsigname = rrname.choose_relativity(origin)
    if rrname != rrsigname:
        raise ValidationFailure("owner names do not match")

    for rrsig in rrsigrdataset:
        try:
            _validate_rrsig(rrset, rrsig, keys, origin, now)
            return
        except ValidationFailure:
            pass
    raise ValidationFailure("no RRSIGs validated") 
開發者ID:MrH0wl,項目名稱:Cloudmare,代碼行數:48,代碼來源:dnssec.py


注:本文中的ecdsa.keys方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。