a ao @ sT d dl mZ d dlmZ d dlmZmZ dZdZG dd deZ G dd d eZ d S ) ) exceptions) serialization)Ed448PrivateKeyEd448PublicKey9 r c @ sJ e Zd Zdd ZejejedddZedddZ eed d ddZ d S ) _Ed448PublicKeyc C s || _ || _d S N_backend _evp_pkeyselfZbackendZevp_pkey r P/usr/lib64/python3.9/site-packages/cryptography/hazmat/backends/openssl/ed448.py__init__ s z_Ed448PublicKey.__init__)encodingformatreturnc C sV |t jju s|t jju r@|t jjus0|t jjur8td| S | j||| | jd S )Nz3When using Raw both encoding and format must be Raw) r EncodingRawPublicFormat ValueError_raw_public_bytesr Z_public_key_bytesr )r r r r r r public_bytes s z_Ed448PublicKey.public_bytesr c C sp | j jdt}| j jdt}| j j| j||}| j |dk | j |d tk | j j|td d S Nzunsigned char []size_t * r ) r _ffinew_ED448_KEY_SIZE_libEVP_PKEY_get_raw_public_keyr openssl_assertbufferr bufbuflenresr r r r - s z!_Ed448PublicKey._raw_public_bytesN) signaturedatar c C s | j j }| j || j jjk | j j|| j jj}| j j|| j jj| j jj| j jj| j }| j |dk | j j ||t||t|}|dkr| j t jd S )Nr )r r" EVP_MD_CTX_newr$ r NULLgcEVP_MD_CTX_freeZEVP_DigestVerifyInitr ZEVP_DigestVerifylenZ_consume_errorsr ZInvalidSignature)r r* r+ evp_md_ctxr) r r r verify7 s&