You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
trezor-firmware/docs/api-ideas.md

3.3 KiB

##trezor.crypto

###trezor.crypto.aes

AES_CTX = object # AES context

def aes_encrypt_key128(key: bytes16, iv: bytes16 = None) -> AES_CTX: # context

def aes_encrypt_key192(key: bytes24, iv: bytes16 = None) -> AES_CTX: # context

def aes_encrypt_key256(key: bytes32, iv: bytes16 = None) -> AES_CTX: # context

def aes_decrypt_key128(key: bytes16, iv: bytes16 = None) -> AES_CTX: # context

def aes_decrypt_key192(key: bytes24, iv: bytes16 = None) -> AES_CTX: # context

def aes_decrypt_key256(key: bytes32, iv: bytes16 = None) -> AES_CTX: # context

def aes_ecb_encrypt(ctx: AES_CTX, data: bytes) -> bytes: # encrypted

def aes_cbc_encrypt(ctx: AES_CTX, data: bytes) -> bytes: # encrypted

def aes_cfb_encrypt(ctx: AES_CTX, data: bytes) -> bytes: # encrypted

def aes_ofb_encrypt(ctx: AES_CTX, data: bytes) -> bytes: # encrypted

def aes_ctr_encrypt(ctx: AES_CTX, data: bytes) -> bytes: # encrypted

def aes_ecb_decrypt(ctx: AES_CTX, data: bytes) -> bytes: # decrypted

def aes_cbc_decrypt(ctx: AES_CTX, data: bytes) -> bytes: # decrypted

def aes_cfb_decrypt(ctx: AES_CTX, data: bytes) -> bytes: # decrypted

def aes_ofb_decrypt(ctx: AES_CTX, data: bytes) -> bytes: # decrypted

def aes_ctr_decrypt(ctx: AES_CTX, data: bytes) -> bytes: # decrypted

###trezor.crypto.base58

def encode(data: bytes) -> bytes: # encoded

def decode(data: bytes) -> bytes: # decoded

def encode_check(data: bytes) -> bytes: # encoded

def decode_check(data: bytes) -> bytes: # decoded

###trezor.crypto.ed25519

def to_public(secret_key: bytes32) -> bytes32: # public_key

def sign(message: bytes, secret_key: bytes32, public_key: bytes32 = None) -> bytes64: # signature

def verify(message: bytes, public_key: bytes32, signature: bytes64) -> bool: # valid

###trezor.crypto.hash

def sha256(data: bytes) -> bytes32: # hashed

def sha512(data: bytes) -> bytes64: # hashed

def ripemd160(data: bytes) -> bytes20: # hashed

###trezor.crypto.hd

TODO

###trezor.crypto.hmac

def hmac_sha256(key: bytes, message: bytes) -> bytes32: # hmac

def hmac_sha512(key: bytes, message: bytes) -> bytes64: # hmac

###trezor.crypto.kdf

def pbkdf2_hmac_sha256(password: bytes, salt: bytes, iterations: int, keylen: int) -> bytes32: # key

def pbkdf2_hmac_sha512(password: bytes, salt: bytes, iterations: int, keylen: int) -> bytes32: # key

###trezor.crypto.mnemonic

def bip39_generate(strength: int) -> bytes: # sentence

def bip39_fromdata(data: bytes) -> bytes: # sentence

def bip39_check(mnemonic: bytes) -> bool: # valid

def bip39_seed(mnemonic: bytes, passphrase: bytes) -> bytes64: # seed

###trezor.crypto.nistp256

def to_public(secret_key: bytes32) -> bytes33: # public_key

def sign(message: bytes, secret_key: bytes32, public_key: bytes33 = None) -> bytes65: # signature

def verify(message: bytes, public_key: bytes33, signature: bytes65) -> bool: # valid

###trezor.crypto.reedsolomon

def encode(data: bytes) -> bytes: # encoded

def decode(data: bytes) -> bytes: # decoded

###trezor.crypto.secp256k1

def to_public(secret_key: bytes32) -> bytes33: # public_key

def sign(message: bytes, secret_key: bytes32, public_key: bytes33 = None) -> bytes65: # signature

def verify(message: bytes, public_key: bytes33, signature: bytes65) -> bool: # valid