Module diem.auth_key
Provides AuthKey class for holding Diem authentication key and generating account address, prefix from it.
Expand source code
# Copyright (c) The Diem Core Contributors
# SPDX-License-Identifier: Apache-2.0
"""Provides AuthKey class for holding Diem authentication key and generating account address, prefix from it."""
from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PublicKey
from . import utils, diem_types
class AuthKey:
"""Diem Authentication Key
Wraps authentication key bytes, derives account address and authentication key prefix.
"""
data: bytes
@staticmethod
def from_public_key(public_key: Ed25519PublicKey) -> "AuthKey":
single_key_scheme = b"\x00"
return AuthKey(utils.hash(utils.public_key_bytes(public_key), single_key_scheme))
def __init__(self, data: bytes) -> None:
self.data = data
def account_address(self) -> diem_types.AccountAddress:
return utils.account_address(self.data[-utils.ACCOUNT_ADDRESS_LEN :])
def prefix(self) -> bytes:
return self.data[: -utils.ACCOUNT_ADDRESS_LEN]
def hex(self) -> str:
return self.data.hex()
Classes
class AuthKey (data: bytes)
-
Diem Authentication Key
Wraps authentication key bytes, derives account address and authentication key prefix.
Expand source code
class AuthKey: """Diem Authentication Key Wraps authentication key bytes, derives account address and authentication key prefix. """ data: bytes @staticmethod def from_public_key(public_key: Ed25519PublicKey) -> "AuthKey": single_key_scheme = b"\x00" return AuthKey(utils.hash(utils.public_key_bytes(public_key), single_key_scheme)) def __init__(self, data: bytes) -> None: self.data = data def account_address(self) -> diem_types.AccountAddress: return utils.account_address(self.data[-utils.ACCOUNT_ADDRESS_LEN :]) def prefix(self) -> bytes: return self.data[: -utils.ACCOUNT_ADDRESS_LEN] def hex(self) -> str: return self.data.hex()
Class variables
var data : bytes
Static methods
def from_public_key(public_key: cryptography.hazmat.primitives.asymmetric.ed25519.Ed25519PublicKey) ‑> AuthKey
-
Expand source code
@staticmethod def from_public_key(public_key: Ed25519PublicKey) -> "AuthKey": single_key_scheme = b"\x00" return AuthKey(utils.hash(utils.public_key_bytes(public_key), single_key_scheme))
Methods
def account_address(self) ‑> AccountAddress
-
Expand source code
def account_address(self) -> diem_types.AccountAddress: return utils.account_address(self.data[-utils.ACCOUNT_ADDRESS_LEN :])
def hex(self) ‑> str
-
Expand source code
def hex(self) -> str: return self.data.hex()
def prefix(self) ‑> bytes
-
Expand source code
def prefix(self) -> bytes: return self.data[: -utils.ACCOUNT_ADDRESS_LEN]