î
!dÝVŸ  ã               @   sŸ   d  d l  Z  d  d l Z d  d l m Z d d l m Z d d d d d	 d
 d g Z d Z d Z d Z	 e d d ƒ Z
 d d d „ Z d d „  Z d d „  Z d S)é    N)Ú
namedtupleé   )ÚdjbecÚcrypto_signÚcrypto_sign_openÚcrypto_sign_keypairÚKeypairÚPUBLICKEYBYTESÚSECRETKEYBYTESÚSIGNATUREBYTESé    é@   ÚvkÚskc             C   su   |  d k r t  j t ƒ }  n t j d t ƒ t |  ƒ d k rO t d ƒ ‚ n  |  } t j	 | ƒ } t
 | | | ƒ S)zCReturn (verifying, secret) key from a given seed, or os.urandom(32)Nz$ed25519ll should choose random seed.r   z%seed must be 32 random bytes or None.)ÚosÚurandomr	   ÚwarningsÚwarnÚRuntimeWarningÚlenÚ
ValueErrorr   Z	publickeyr   )ÚseedÚskbytesÚvkbytes© r   ú;/tmp/pip-build-0jahl3lb/wheel/wheel/signatures/ed25519py.pyr      s    	c             C   sh   t  | ƒ t k r+ t d t  | ƒ ƒ ‚ n  | t d … } | d t … } t j |  | | ƒ } | |  S)z¦Return signature+message given message and secret key.
    The signature is the first SIGNATUREBYTES bytes of the return value.
    A copy of msg is in the remainder.zBad signing key length %dN)r   r
   r   r	   r   Ú	signature)Úmsgr   r   r   Úsigr   r   r   r       s    c             C   sz   t  | ƒ t k r+ t d t  | ƒ ƒ ‚ n  t j |  d t … |  t d … | ƒ } | sl t d | ƒ ‚ n  |  t d … S)z=Return message given signature+message and the verifying key.zBad verifying key length %dNz
rc != True)r   r	   r   r   Z
checkvalidr   )Úsignedr   Úrcr   r   r   r   ,   s    ))zvkzsk)r   r   Úcollectionsr   Ú r   Ú__all__r	   r
   r   r   r   r   r   r   r   r   r   Ú<module>   s   