Y@sdZddgZddlZddlmZmZmZmZdadZ dd Z d dZ d d d Z ddZ ddZdS)z5 Create and verify jws-js format Ed25519 signatures. signverifyN)urlsafe_b64decodeurlsafe_b64encodenativebinaryZEd25519c CsLtsHyddlaWn(ttfk r@ddlmaYnXttS)z&Lazy import-and-test of ed25519 modulerN) ed25519py) ed25519ll ImportErrorOSErrorr testrr:/tmp/pip-build-3puug3g5/wheel/wheel/signatures/__init__.py get_ed25519llsrc Cstdtddtdtt|jii}tttj|dd}tttj|dd}dj||f}t j ||j }|dt j }t|}d d t|d t|igd t|iS) z_Return a JWS-JS format signature given a JSON-serializable payload and an Ed25519 keypair.algjwkktyvk sort_keysT.N recipientsheader signaturepayload) rALGrrrrjsondumpsjoinr Z crypto_signskZSIGNATUREBYTES) rZkeypairrZencoded_headerencoded_payload secured_inputsig_msgrZencoded_signaturerrrrs!!  rcCs|st|dS)N) ValueError) conditionmessagerrr assertTrue4sr(cCst|d}t|d}g}x|D]}tt|dkdj|t|d}t|d}tjtt|}t|dt kdj|dd|d krd |d kr|d d|d d s  "  &