
    i#	                        d Z ddlZddlmc mZ ddlZddlm	Z	 ej                  j                  d e e	e      j                         j                  d                ddlZddlmZmZ dZd Zd Zd	 Zd
 Zd Zd Zd Zd Zy)u/   task-2370 P2 — anu_confirm_bot signer 검증.    N)Path   )sign_callbackverify_callbacktest_secret_keyc            	         t        dddt        t        j                               dz   t              } t	        | t              }|d   }d}||u }|slt        j                  d|fd||f      t        j                  |      t        j                  |      d	z  }d
d|iz  }t        t        j                  |            d x}x}}|d   }d}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      d	z  }d
d|iz  }t        t        j                  |            d x}x}}|d   }d}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      d	z  }d
d|iz  }t        t        j                  |            d x}x}}|d   }d}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      d	z  }d
d|iz  }t        t        j                  |            d x}x}}y )NaB	  c   ,  okTisz%(py1)s is %(py4)spy1py4assert %(py6)spy6action==z%(py1)s == %(py4)stask_numpr_num
r   inttimeSECRETr   
@pytest_ar_call_reprcompare	_safereprAssertionError_format_explanationcbv@py_assert0@py_assert3@py_assert2@py_format5@py_format7s          -/home/jay/workspace/tests/dev3/test_signer.pytest_roundtrip_approver.      sg   	sD"c$))+&6&<f	EBF#AT7d7d?7d7dX;#;#;#;#Z= D =D    =D   =   D       X;";";";"    c            	         t        dddt        t        j                               dz   t              } t	        | t              }g }|d   }d}||u }|}|r|d   }d}||k(  }	|	}|st        j                  d|fd	||f      t        j                  |      t        j                  |      d
z  }
dd|
iz  }|j                  |       |r_t        j                  d	fdf      t        j                  |      t        j                  |      dz  }dd|iz  }|j                  |       t        j                  |d      i z  }dd|iz  }t        t        j                  |            d x}x}x}x}x}x}x}	}y )Nrr
   r   r   r   Tr   r   z%(py3)s is %(py6)spy3r   %(py8)spy8r   z%(py11)s == %(py14)spy11py14%(py16)spy16r   assert %(py19)spy19r   r   r   r   r   r    r!   r"   append_format_boolopr#   r$   r&   r'   @py_assert1r*   @py_assert5@py_assert4r(   @py_assert10@py_assert13@py_assert12r,   @py_format9@py_format15@py_format17@py_format18@py_format20s                   r-   test_roundtrip_rejectrN          	sD"c$))+&6&<f	EBF#A11T71d17d?1q{1c1{c11117d1117111d1111111{c111{111c11111111111111r/   c            	         t        dddt        t        j                               dz   t              } t	        | t              }g }|d   }d}||u }|}|r|d   }d}||k(  }	|	}|st        j                  d|fd	||f      t        j                  |      t        j                  |      d
z  }
dd|
iz  }|j                  |       |r_t        j                  d	fdf      t        j                  |      t        j                  |      dz  }dd|iz  }|j                  |       t        j                  |d      i z  }dd|iz  }t        t        j                  |            d x}x}x}x}x}x}x}	}y )Ndr
   r   r   r   Tr   r   r2   r3   r5   r6   r   r7   r8   r;   r<   r   r=   r>   r?   rB   s                   r-   test_roundtrip_diffrR      rO   r/   c            	      |   t        dddt        t        j                               dz   t              } t	        | d      }|d   }d}||u }|slt        j                  d|fd	||f      t        j                  |      t        j                  |      d
z  }dd|iz  }t        t        j                  |            d x}x}}|d   }d}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      d
z  }dd|iz  }t        t        j                  |            d x}x}}y )Nr	   r
   r   r   wrong_secretr   Fr   r   r   r   r   reason	signaturer   r   r   r%   s          r-   test_wrong_secret_rejectedrW   !   s    	sD"c$))+&6&<f	EBN+AT7e7e7e7eX;%+%;+%%%%;+%%%;%%%+%%%%%%%r/   c            	         t        dddt        t        j                               dz
  t              } t	        | t              }|d   }d}||u }|slt        j                  d|fd||f      t        j                  |      t        j                  |      d	z  }d
d|iz  }t        t        j                  |            d x}x}}|d   }d}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      d	z  }d
d|iz  }t        t        j                  |            d x}x}}y )Nr	   r
   r   
   r   Fr   r   r   r   r   rU   expiredr   r   r   r%   s          r-   test_expired_callback_rejectedr[   (   s    	sD"c$))+&6&;V	DBF#AT7e7e7e7eX;#)#;)####;)###;###)#######r/   c                  F   d} dd l }dd l}dd l}|j                  t        j                         | j                         |j                        j                         }|j                  |      j                  d      j                  d      d d }|  d| }t        |t              }|d   }d}	||	u }
|
slt        j                  d	|
fd
||	f      t        j                  |      t        j                  |	      dz  }dd|iz  }t        t        j                   |            d x}x}
}	|d   }d}	||	k(  }
|
slt        j                  d|
fd||	f      t        j                  |      t        j                  |	      dz  }dd|iz  }t        t        j                   |            d x}x}
}	y )Nzx:2370:99:9999999999r   ascii=   :r   Fr   r   r   r   r   rU   unknown_actionr   r   )hmachashlibbase64newr   encodesha256digesturlsafe_b64encodedecoderstripr   r    r!   r"   r#   r$   )payloadrb   rc   rd   macsigforgedr'   r(   r)   r*   r+   r,   s                r-   test_unknown_action_rejectedrp   /   s"   $G  
((6==?GNN$4gnn
E
L
L
NC

"
"3
'
.
.w
7
>
>s
CBQ
GCy#F'AT7e7e7e7eX;***;*****;****;***********r/   c                  "   t        dt              } | d   }d}||u }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}| d	   }d
}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}y )Nznot:valid:datar   Fr   r   r   r   r   rU   formatr   r   )r   r   r    r!   r"   r#   r$   )r'   r(   r)   r*   r+   r,   s         r-   test_malformed_format_rejectedrs   ;   s    (&1AT7e7e7e7eX;"(";("""";(""";"""("""""""r/   c            	         t        dddt        t        j                               dz   t              } | j	                  d      }d|d<   dj                  |      }t        |t              }|d   }d	}||u }|slt        j                  d
|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}|d   }d}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}y )Nr	   r
   r   r   r`   9999   r   Fr   r   r   r   r   rU   rV   r   r   )r   r   r   r   splitjoinr   r    r!   r"   r#   r$   )	r&   partstamperedr'   r(   r)   r*   r+   r,   s	            r-   test_tampered_payload_rejectedr{   A   s    	sD"c$))+&6&<f	EBHHSMEE!HxxH&)AT7e7e7e7eX;%+%;+%%%%;+%%%;%%%+%%%%%%%r/   )__doc__builtins@py_builtins_pytest.assertion.rewrite	assertionrewriter    syspathlibr   pathinsertstr__file__resolveparentsr   scripts.anu_confirm_bot.signerr   r   r   r.   rN   rR   rW   r[   rp   rs   r{    r/   r-   <module>r      st    5   
  3tH~--/77:; <  I	22&$	+#&r/   