o
    BŠ]/  ã                   @   sœ   z
d dl mZmZ W n ey!   d dlZd dlZejZejZY nw d dlmZ dd„ Zdd„ Z	dd	„ Z
d
d„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )é    )Úmd5Úsha1N)Úunivc           	      C   s´   t  | ¡ ¡ } |ƒ }| dt| ƒ d  }t|ƒ}d}d}|dk rQ|d }||k r4| |||… ¡ |}n| |||… |d|| …  ¡ || }|d7 }|dk s | ¡ }t  |¡S )Né@   é   r   i @  )r   ÚOctetStringÚasOctetsÚlenÚupdateÚdigest)	Ú
passphraseÚhashFuncZhasherZ
ringBufferZringBufferLenÚcountZmarkÚer   © r   úF/usr/lib/python3/dist-packages/pysnmp/proto/secmod/rfc3414/localkey.pyÚhashPassphrase   s&   ÿö
r   c                 C   s   t t| |ƒ||ƒS ©N)ÚlocalizeKeyr   )r   ÚsnmpEngineIdr   r   r   r   ÚpasswordToKey,   s   r   c                 C   s0   t  | ¡ ¡ } || | ¡  |  ƒ ¡ }t  |¡S r   )r   r   r   r   )ÚpassKeyr   r   r   r   r   r   r   0   s   
r   c                 C   ó
   t | tƒS r   )r   r   ©r   r   r   r   ÚhashPassphraseMD58   ó   
r   c                 C   r   r   )r   r   r   r   r   r   ÚhashPassphraseSHA=   r   r   c                 C   ó   t t| ƒ|tƒS r   )r   r   r   ©r   r   r   r   r   ÚpasswordToKeyMD5A   ó   r   c                 C   r   r   )r   r   r   r   r   r   r   ÚpasswordToKeySHAE   r    r!   c                 C   ó   t | |tƒS r   )r   r   ©r   r   r   r   r   ÚlocalizeKeyMD5I   ó   r$   c                 C   r"   r   )r   r   r#   r   r   r   ÚlocalizeKeySHAM   r%   r&   )Zhashlibr   r   ÚImportErrorZshaÚnewZpyasn1.typer   r   r   r   r   r   r   r!   r$   r&   r   r   r   r   Ú<module>   s$   
û