+
    '(j[                       ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIH	t	H
t
Ht ^ RIHtHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHt  ^ RItR
t ! R R]4      tR<R ltR tR tR tR t R t!R t"R t#R t$R t%R t& ! R R]PN                  4      t( ! R R]PN                  4      t) ! R R]PN                  4      t* ! R R ]PN                  4      t+ ! R! R"]PN                  4      t, ! R# R$]PN                  4      t- ! R% R&]PN                  4      t. ! R' R(]PN                  4      t/ ! R) R*]PN                  4      t0 ! R+ R,]PN                  4      t1 ! R- R.]PN                  4      t2 ! R/ R0]PN                  4      t3 ! R1 R2]PN                  4      t4 ! R3 R4]PN                  4      t5 ! R5 R6]PN                  4      t6/ 3R7 lt7]8R88X  d   R9 t9]Pt                  ! R:R;7       R# R#   ] d    Rt ELi ; i)=    N)	unhexlify)list_test_cases)bordtostrFileNotFoundError)DerSequenceDerBitString)bytes_to_long)SHAKE128)ECC)_import_rfc5915_derTFc                       ] tR t^6tRtR# )MissingTestVectorException N)__name__
__module____qualname____firstlineno____static_attributes__r       ^/home/ubuntu/cf-venv/lib/python3.14/site-packages/Crypto/SelfTest/PublicKey/test_import_ECC.pyr   r   6   s    r   r   c                    R p \         '       g>   \        \        P                  \        P
                  ! \        P                  4      V 4      hRp\        P                  P                  \        P                  4      p\        P                  P                  \        P                  P                  ! V.VO5!  V 4      p\        WQ4      ;_uu_ 4       pVP                  4       pR R R 4       Tf   \!        RT ,          4      hT#   + '       g   i     L(; i  \         d!    \        P                  ! R\        ^R7        LUi ; i)NzSkipping extended tests for ECC)
stacklevelz
Missing %s)	PublicKeyr   )test_vectors_availabler   errnoENOENTosstrerrorpathdirnamepycryptodome_test_vectors__file__joinopenreadwarningswarnUserWarningr   )	file_namemoderesults	dir_compsinit_dirfull_file_namefile_ins   &&     r   	load_filer1   :   s    G$%%#ELL$&KK$=$-/ / )	77??#<#E#EFbggll8&Hi&H)T.''7llnG ( (	)ABBN ('  $7!!"	$$s5   D B?D D  D  D	D D (D>=D>c                     R P                  V 4      p\        \        V4      P                  RR4      P                  RR4      4      # )r     :)r$   r   r   replace)linesexts   & r   compactr9   T   s8    
((5/CU3Z''R088bABBr   c                  v   ^p \        R4      P                  4       p\        \        VR,          4      4      p\        VR,          4      p\	        V^ ,          4      ^8X  g   Q h\        V^V ^,            4      p\        W0^,           R 4      p\
        P                  ! RVR7      \
        P                  ! RWER7      3# )   zecc_p192.txt      N   	   NNzP-192curvedrC   point_xpoint_yr1   
splitlinesr
   r9   r   r   	constructkey_len	key_linesprivate_key_dpublic_key_xypublic_key_xpublic_key_ys         r   create_ref_keys_p192rR   Y       G.)446I!')C."9:MIcN+Ma !Q&&& q!;<L qyz!:;LMM=9MMTV Vr   c                  v   ^p \        R4      P                  4       p\        \        VR,          4      4      p\        VR,          4      p\	        V^ ,          4      ^8X  g   Q h\        V^V ^,            4      p\        W0^,           R 4      p\
        P                  ! RVR7      \
        P                  ! RWER7      3# )   zecc_p224.txtr<   r?   NzP-224rB   rE   rH   rK   s         r   create_ref_keys_p224rV   f   rS   r   c                  v   ^ p \        R4      P                  4       p\        \        VR,          4      4      p\        VR,          4      p\	        V^ ,          4      ^8X  g   Q h\        V^V ^,            4      p\        W0^,           R 4      p\
        P                  ! RVR7      \
        P                  ! RWER7      3# )    zecc_p256.txt:r=   r@   N:      NNzP-256rB   rE   rH   rK   s         r   create_ref_keys_p256r[   s       G.)446I!')C."9:MIdO,Ma !Q&&& q!;<L qyz!:;LMM=9MMTV Vr   c                  v   ^0p \        R4      P                  4       p\        \        VR,          4      4      p\        VR,          4      p\	        V^ ,          4      ^8X  g   Q h\        V^V ^,            4      p\        W0^,           R 4      p\
        P                  ! RVR7      \
        P                  ! RWER7      3# )0   zecc_p384.txt:r=   rY   N:      NNzP-384rB   rE   rH   rK   s         r   create_ref_keys_p384ra      r\   r   c                  v   ^Bp \        R4      P                  4       p\        \        VR,          4      4      p\        VR,          4      p\	        V^ ,          4      ^8X  g   Q h\        V^V ^,            4      p\        W0^,           R 4      p\
        P                  ! RVR7      \
        P                  ! RWER7      3# )B   zecc_p521.txt:r=   r_   N:      NNzP-521rB   rE   rH   rK   s         r   create_ref_keys_p521rf      r\   r   c                      \        R 4      P                  4       p \        V R,          4      p\        P                  ! RVR7      pW"P                  4       3# )zecc_ed25519.txt:r@   rd   NEd25519rC   seedr1   rI   r9   r   rJ   
public_keyrM   rj   keys      r   create_ref_keys_ed25519ro      sD    +,779I9S>"D
--id
3C!""r   c                      \        R 4      P                  4       p \        V R,          4      p\        P                  ! RVR7      pW"P                  4       3# )zecc_ed448.txt:rY   
   NEd448ri   rk   rm   s      r   create_ref_keys_ed448rs      sC    /*557I9T?#D
--gD
1C!""r   c                  ^    \         P                  ! 4       P                  R 4      P                  # )s   SEED)r   newupdater&   r   r   r   get_fixed_prngrw      s    <<>  )...r   c                     \        4       pVP                  V 4       \        4       pVP                  V^,          4       VP                  # )   )r   decoder	   value)dataseqbss   &  r   extract_bitstring_from_spkir      s5    m

4^
		#a&xxr   c                   >   a  ] tR t^t o R tR tR tR tR tRt	V t
R# )
TestImportc                P    V P                  \        \        P                  R 4       R# )r   NassertRaises
ValueErrorr   
import_keyselfs   &r   
test_emptyTestImport.test_empty   s    *cnnc:r   c                T    R pV P                  \        \        P                  V4       R# )a1  -----BEGIN PRIVATE KEY-----
MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJChZANiAAQarFRaqflo
I+d61SRvU8Za2EurxtW20eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinng
o4N+LZfQYcTxmdwlkWOrfzCjtHDix6EznPO/LlxTsV+zfTJ/ijTjeXk=
-----END PRIVATE KEY-----Nr   )r   mismatchs   & r   test_mismatchTestImport.test_mismatch   s!     	*cnnh?r   c                n    R p\        \        V4      RR4      pV P                  VP                  R4       R# )N302502010104205c4e4320ef260f91ed9fc597aee98c8236b60e0ced692cc7a057d5e45798a052N1.2.840.10045.3.1.7   R 1/WzL%-;[6S^,~A;!N\r   r   assertEqualrD   r   data_hexrn   s   &  r    test_import_private_rfc5915_none+TestImport.test_import_private_rfc5915_none   s0    c!)H"5t=RS bcr   c                l    R p\        \        V4      R4      pV P                  VP                  R4       R# )f303102010104205c4e4320ef260f91ed9fc597aee98c8236b60e0ced692cc7a057d5e45798a052a00a06082a8648ce3d030107Nr   r   r   s   &  r   "test_import_private_rfc5915_only_0-TestImport.test_import_private_rfc5915_only_0   s-    {!)H"5t< bcr   c                n    R p\        \        V4      RR4      pV P                  VP                  R4       R# )306b02010104205c4e4320ef260f91ed9fc597aee98c8236b60e0ced692cc7a057d5e45798a052a14403420004a40ad59a2050ebe92479bd5fb16bb2e45b6465eb3cb2b1effe423fabe6cb7424db8219ef0bab80acf26fd70595b61fe4760d33eed80dd03d2fd0dfb27b8ce75cNr   r   r   r   s   &  r   "test_import_private_rfc5915_only_1-TestImport.test_import_private_rfc5915_only_1   s3     p!)H"5t=RS bcr   r   N)r   r   r   r   r   r   r   r   r   r   __classdictcell__)__classdict__s   @r   r   r      s(     ;@ddd dr   r   c                      a a ] tR t^t oV 3R ltR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tRtVtV ;t# )TestImport_P192c                ^   < \         \        V `
  ! V/ VB  \        4       w  V n        V n        R # N)superr   __init__rR   ref_private
ref_publicr   argskwargs	__class__s   &*,r   r   TestImport_P192.__init__   )    ot-t>v>,@,B)$/r   c                J   \        R 4      p\        P                  ! V4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       \        P                  ! V4      pV P                  V P                  V4       R# )ecc_p192_public.derNr1   r   _import_subjectPublicKeyInfor   r   _import_derr   r   key_filern   s   &  r   test_import_public_der&TestImport_P192.test_import_public_der   w    23..x8#.ooh-#.nnX&#.r   c                    \        R 4      p\        V4      p\        P                  ! VRR7      pV P	                  V P
                  V4       R# )r   P192
curve_nameNr1   r   r   r   r   r   r   r   r{   rn   s   &   r   test_import_sec1_uncompressed-TestImport_P192.test_import_sec1_uncompressed   ;    23+H5nnX&9#.r   c                    \        R 4      p\        V4      p\        P                  ! VRR7      pV P	                  V P
                  V4       R# )ecc_p192_public_compressed.derr   r   Nr   r   s   &   r   test_import_sec1_compressed+TestImport_P192.test_import_sec1_compressed   ;    =>+H5nnX&9#.r   c                L   \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       \        P                  ! V4      pV P                  V P                  V4       R# )ecc_p192_private.derNr1   r   r   r   r   r   r   r   s   &  r   test_import_rfc5915_der'TestImport_P192.test_import_rfc5915_der       34%%h5))3/ooh-))3/nnX&))3/r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! V4      pV P                  V P                  V4       R# )ecc_p192_private_p8_clear.derNr1   r   r   r   r   r   r   s   &  r   test_import_private_pkcs8_clear/TestImport_P192.test_import_private_pkcs8_clear  W    <=ooh-))3/nnX&))3/r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )ecc_p192_private_p8_clear.pemNr1   r   r   r   r   r   s   &  r   &test_import_private_pkcs8_in_pem_clear6TestImport_P192.test_import_private_pkcs8_in_pem_clear  1    <=nnX&))3/r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       R# )zecc_p192_private_p8.dersecretNr   r   s   &  r   %test_import_private_pkcs8_encrypted_15TestImport_P192.test_import_private_pkcs8_encrypted_1  Y    67ooh1))3/nnXx0))3/r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       R# )zecc_p192_private_p8.pemr   Nr   r   s   &  r   %test_import_private_pkcs8_encrypted_25TestImport_P192.test_import_private_pkcs8_encrypted_2  3    67nnXx0))3/r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! V4      pV P                  V P                  V4       R# )zecc_p192_x509.derNr1   r   r   r   r   r   r   s   &  r   test_import_x509_der$TestImport_P192.test_import_x509_der   S    01ooh-#.nnX&#.r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )ecc_p192_public.pemNr1   r   r   r   r   r   s   &  r   test_import_public_pem&TestImport_P192.test_import_public_pem)  /    23nnX&#.r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )ecc_p192_private.pemNr   r   s   &  r   test_import_private_pem'TestImport_P192.test_import_private_pem/  1    34nnX&))3/r   c                   R F  p\        RV,          4      p\        P                  ! VR4      pV P                  V P                  V4       \        P                  ! \        V4      R4      pV P                  V P                  V4       K  	  R# )des3zecc_p192_private_enc_%s.pemr      secretNr   aes128aes192aes256
aes256_gcmr1   r   r   r   r   r   r   algor   rn   s   &   r   !test_import_private_pem_encrypted1TestImport_P192.test_import_private_pem_encrypted5  m    FD !>!EFH..84CT--s3..x)<CT--s3 Gr   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )zecc_p192_x509.pemNr   r   s   &  r   test_import_x509_pem$TestImport_P192.test_import_x509_pem?  /    01nnX&#.r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   __classcell__r   r   s   @@r   r   r      sQ     C
///
00000//04/ /r   r   c                      a a ] tR tRt oV 3R ltR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tRtVtV ;t# )TestImport_P224iF  c                ^   < \         \        V `
  ! V/ VB  \        4       w  V n        V n        R # r   )r   r
  r   rV   r   r   r   s   &*,r   r   TestImport_P224.__init__H  r   r   c                J   \        R 4      p\        P                  ! V4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       \        P                  ! V4      pV P                  V P                  V4       R# )ecc_p224_public.derNr   r   s   &  r   r   &TestImport_P224.test_import_public_derL  r   r   c                    \        R 4      p\        V4      p\        P                  ! VRR7      pV P	                  V P
                  V4       R# )r  P224r   Nr   r   s   &   r   r   -TestImport_P224.test_import_sec1_uncompressedX  r   r   c                    \        R 4      p\        V4      p\        P                  ! VRR7      pV P	                  V P
                  V4       R# )ecc_p224_public_compressed.derr  r   Nr   r   s   &   r   r   +TestImport_P224.test_import_sec1_compressed^  r   r   c                L   \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       \        P                  ! V4      pV P                  V P                  V4       R# )ecc_p224_private.derNr   r   s   &  r   r   'TestImport_P224.test_import_rfc5915_derd  r   r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! V4      pV P                  V P                  V4       R# )ecc_p224_private_p8_clear.derNr   r   s   &  r   r   /TestImport_P224.test_import_private_pkcs8_clearp  r   r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )ecc_p224_private_p8_clear.pemNr   r   s   &  r   r   6TestImport_P224.test_import_private_pkcs8_in_pem_cleary  r   r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       R# )zecc_p224_private_p8.derr   Nr   r   s   &  r   r   5TestImport_P224.test_import_private_pkcs8_encrypted_1  r   r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       R# )zecc_p224_private_p8.pemr   Nr   r   s   &  r   r   5TestImport_P224.test_import_private_pkcs8_encrypted_2  r   r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       R# )zecc_p224_private_p8_2.derr   Nr   r   s   &  r   %test_import_private_pkcs8_encrypted_35TestImport_P224.test_import_private_pkcs8_encrypted_3  Y    89ooh1))3/nnXx0))3/r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! V4      pV P                  V P                  V4       R# )zecc_p224_x509.derNr   r   s   &  r   r   $TestImport_P224.test_import_x509_der  r   r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )ecc_p224_public.pemNr   r   s   &  r   r   &TestImport_P224.test_import_public_pem  r   r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )ecc_p224_private.pemNr   r   s   &  r   r   'TestImport_P224.test_import_private_pem  r   r   c                   R F  p\        RV,          4      p\        P                  ! VR4      pV P                  V P                  V4       \        P                  ! \        V4      R4      pV P                  V P                  V4       K  	  R# )r   zecc_p224_private_enc_%s.pemr   r   Nr   r   r   s   &   r   r   1TestImport_P224.test_import_private_pem_encrypted  r  r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )zecc_p224_x509.pemNr   r   s   &  r   r  $TestImport_P224.test_import_x509_pem  r  r   r  )r   r   r   r   r   r   r   r   r   r   r   r   r   r$  r   r   r   r   r  r   r   r  r  s   @@r   r
  r
  F  sV     C
///
000000//04/ /r   r
  c                      a a ] tR tRt oV 3R ltR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tR tRtVtV ;t# )TestImport_P256i  c                ^   < \         \        V `
  ! V/ VB  \        4       w  V n        V n        R # r   )r   r4  r   r[   r   r   r   s   &*,r   r   TestImport_P256.__init__  r   r   c                J   \        R 4      p\        P                  ! V4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       \        P                  ! V4      pV P                  V P                  V4       R# )ecc_p256_public.derNr   r   s   &  r   r   &TestImport_P256.test_import_public_der  r   r   c                    \        R 4      p\        V4      p\        P                  ! VRR7      pV P	                  V P
                  V4       R# )r8  P256r   Nr   r   s   &   r   r   -TestImport_P256.test_import_sec1_uncompressed  r   r   c                    \        R 4      p\        V4      p\        P                  ! VRR7      pV P	                  V P
                  V4       R# )ecc_p256_public_compressed.derr;  r   Nr   r   s   &   r   r   +TestImport_P256.test_import_sec1_compressed  r   r   c                L   \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       \        P                  ! V4      pV P                  V P                  V4       R# )ecc_p256_private.derNr   r   s   &  r   r   'TestImport_P256.test_import_rfc5915_der  r   r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! V4      pV P                  V P                  V4       R# )ecc_p256_private_p8_clear.derNr   r   s   &  r   r   /TestImport_P256.test_import_private_pkcs8_clear  r   r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )ecc_p256_private_p8_clear.pemNr   r   s   &  r   r   6TestImport_P256.test_import_private_pkcs8_in_pem_clear  r   r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       R# )zecc_p256_private_p8.derr   Nr   r   s   &  r   r   5TestImport_P256.test_import_private_pkcs8_encrypted_1  r   r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       R# )zecc_p256_private_p8.pemr   Nr   r   s   &  r   r   5TestImport_P256.test_import_private_pkcs8_encrypted_2  r   r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       R# )zecc_p256_private_p8_2.derr   Nr   r   s   &  r   r$  5TestImport_P256.test_import_private_pkcs8_encrypted_3  r&  r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! V4      pV P                  V P                  V4       R# )zecc_p256_x509.derNr   r   s   &  r   r   $TestImport_P256.test_import_x509_der  r   r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )ecc_p256_public.pemNr   r   s   &  r   r   &TestImport_P256.test_import_public_pem  r   r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )ecc_p256_private.pemNr   r   s   &  r   r   'TestImport_P256.test_import_private_pem  r   r   c                H    \        R 4      p\        P                  ! V4      pR# )zecc_p256_private_ecparams.pemNr1   r   r   r   s   &  r   %test_import_private_pem_with_ecparams5TestImport_P256.test_import_private_pem_with_ecparams#  s    <=nnX&r   c                   R F  p\        RV,          4      p\        P                  ! VR4      pV P                  V P                  V4       \        P                  ! \        V4      R4      pV P                  V P                  V4       K  	  R# )r   zecc_p256_private_enc_%s.pemr   r   Nr   r   r   s   &   r   r   1TestImport_P256.test_import_private_pem_encrypted(  r  r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )zecc_p256_x509.pemNr   r   s   &  r   r  $TestImport_P256.test_import_x509_pem2  r  r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       \        P
                  ! V4      pV P                  V P                  V4       R# )ecc_p256_public_openssh.txtNr1   r   _import_openssh_publicr   r   r   r   s   &  r   test_import_openssh_public*TestImport_P256.test_import_openssh_public8  S    :;((2#.nnX&#.r   c                    \        R 4      p\        R4      p\        P                  ! V4      p\        P                  ! V4      pV P                  W44       R# )zecc_p256_private_openssh.pemz ecc_p256_private_openssh_old.pemNr1   r   r   r   r   r   key_file_oldrn   key_olds   &    r   !test_import_openssh_private_clear1TestImport_P256.test_import_openssh_private_clearA  B    ;< !CDnnX&...&r   c                    \        R 4      p\        R4      p\        P                  ! VR4      p\        P                  ! V4      pV P                  W44       R# )z ecc_p256_private_openssh_pwd.pemz$ecc_p256_private_openssh_pwd_old.pem   passwordNrg  rh  s   &    r   $test_import_openssh_private_password4TestImport_P256.test_import_openssh_private_passwordI  D    ?@ !GHnnX{3...&r   r  )r   r   r   r   r   r   r   r   r   r   r   r   r   r$  r   r   r   rY  r   r  rc  rk  rp  r   r   r  r  s   @@r   r4  r4    sj     C
///
000000//0'
4//'' 'r   r4  c                      a a ] tR tRt oV 3R ltR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tRtVtV ;t# )TestImport_P384iR  c                ^   < \         \        V `
  ! V/ VB  \        4       w  V n        V n        R # r   )r   rt  r   ra   r   r   r   s   &*,r   r   TestImport_P384.__init__T  r   r   c                J   \        R 4      p\        P                  ! V4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       \        P                  ! V4      pV P                  V P                  V4       R# )ecc_p384_public.derNr   r   s   &  r   r   &TestImport_P384.test_import_public_derX  r   r   c                    \        R 4      p\        V4      p\        P                  ! VRR7      pV P	                  V P
                  V4       R# )rx  P384r   Nr   r   s   &   r   r   -TestImport_P384.test_import_sec1_uncompressedd  r   r   c                    \        R 4      p\        V4      p\        P                  ! VRR7      pV P	                  V P
                  V4       R# )ecc_p384_public_compressed.derr{  r   Nr   r   s   &   r   r   +TestImport_P384.test_import_sec1_compressedj  r   r   c                L   \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       \        P                  ! V4      pV P                  V P                  V4       R# )ecc_p384_private.derNr   r   s   &  r   r   'TestImport_P384.test_import_rfc5915_derp  r   r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! V4      pV P                  V P                  V4       R# )ecc_p384_private_p8_clear.derNr   r   s   &  r   r   /TestImport_P384.test_import_private_pkcs8_clear|  r   r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )ecc_p384_private_p8_clear.pemNr   r   s   &  r   r   6TestImport_P384.test_import_private_pkcs8_in_pem_clear  r   r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       R# )zecc_p384_private_p8.derr   Nr   r   s   &  r   r   5TestImport_P384.test_import_private_pkcs8_encrypted_1  r   r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       R# )zecc_p384_private_p8.pemr   Nr   r   s   &  r   r   5TestImport_P384.test_import_private_pkcs8_encrypted_2  r   r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       R# )zecc_p384_private_p8_2.derr   Nr   r   s   &  r   r$  5TestImport_P384.test_import_private_pkcs8_encrypted_3  r&  r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! V4      pV P                  V P                  V4       R# )zecc_p384_x509.derNr   r   s   &  r   r   $TestImport_P384.test_import_x509_der  r   r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )ecc_p384_public.pemNr   r   s   &  r   r   &TestImport_P384.test_import_public_pem  r   r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )ecc_p384_private.pemNr   r   s   &  r   r   'TestImport_P384.test_import_private_pem  r   r   c                   R F  p\        RV,          4      p\        P                  ! VR4      pV P                  V P                  V4       \        P                  ! \        V4      R4      pV P                  V P                  V4       K  	  R# )r   zecc_p384_private_enc_%s.pemr   r   Nr   r   r   s   &   r   r   1TestImport_P384.test_import_private_pem_encrypted  r  r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )zecc_p384_x509.pemNr   r   s   &  r   r  $TestImport_P384.test_import_x509_pem  r  r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       \        P
                  ! V4      pV P                  V P                  V4       R# )ecc_p384_public_openssh.txtNra  r   s   &  r   rc  *TestImport_P384.test_import_openssh_public  re  r   c                    \        R 4      p\        R4      p\        P                  ! V4      p\        P                  ! V4      pV P                  W44       R# )zecc_p384_private_openssh.pemz ecc_p384_private_openssh_old.pemNrg  rh  s   &    r   rk  1TestImport_P384.test_import_openssh_private_clear  rm  r   c                    \        R 4      p\        R4      p\        P                  ! VR4      p\        P                  ! V4      pV P                  W44       R# )z ecc_p384_private_openssh_pwd.pemz$ecc_p384_private_openssh_pwd_old.pemro  Nrg  rh  s   &    r   rp  4TestImport_P384.test_import_openssh_private_password  rr  r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r$  r   r   r   r   r  rc  rk  rp  r   r   r  r  s   @@r   rt  rt  R  e     C
///
000000//04//'' 'r   rt  c                      a a ] tR tRt oV 3R ltR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tRtVtV ;t# )TestImport_P521i  c                ^   < \         \        V `
  ! V/ VB  \        4       w  V n        V n        R # r   )r   r  r   rf   r   r   r   s   &*,r   r   TestImport_P521.__init__  r   r   c                J   \        R 4      p\        P                  ! V4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       \        P                  ! V4      pV P                  V P                  V4       R# )ecc_p521_public.derNr   r   s   &  r   r   &TestImport_P521.test_import_public_der  r   r   c                    \        R 4      p\        V4      p\        P                  ! VRR7      pV P	                  V P
                  V4       R# )r  P521r   Nr   r   s   &   r   r   -TestImport_P521.test_import_sec1_uncompressed  r   r   c                    \        R 4      p\        V4      p\        P                  ! VRR7      pV P	                  V P
                  V4       R# )ecc_p521_public_compressed.derr  r   Nr   r   s   &   r   r   +TestImport_P521.test_import_sec1_compressed  r   r   c                L   \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       \        P                  ! V4      pV P                  V P                  V4       R# )ecc_p521_private.derNr   r   s   &  r   r   'TestImport_P521.test_import_rfc5915_der   r   r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! V4      pV P                  V P                  V4       R# )ecc_p521_private_p8_clear.derNr   r   s   &  r   r   /TestImport_P521.test_import_private_pkcs8_clear  r   r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )ecc_p521_private_p8_clear.pemNr   r   s   &  r   r   6TestImport_P521.test_import_private_pkcs8_in_pem_clear  r   r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       R# )zecc_p521_private_p8.derr   Nr   r   s   &  r   r   5TestImport_P521.test_import_private_pkcs8_encrypted_1  r   r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       R# )zecc_p521_private_p8.pemr   Nr   r   s   &  r   r   5TestImport_P521.test_import_private_pkcs8_encrypted_2$  r   r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       R# )zecc_p521_private_p8_2.derr   Nr   r   s   &  r   r$  5TestImport_P521.test_import_private_pkcs8_encrypted_3*  r&  r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! V4      pV P                  V P                  V4       R# )zecc_p521_x509.derNr   r   s   &  r   r   $TestImport_P521.test_import_x509_der3  r   r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )ecc_p521_public.pemNr   r   s   &  r   r   &TestImport_P521.test_import_public_pem<  r   r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )ecc_p521_private.pemNr   r   s   &  r   r   'TestImport_P521.test_import_private_pemB  r   r   c                   R F  p\        RV,          4      p\        P                  ! VR4      pV P                  V P                  V4       \        P                  ! \        V4      R4      pV P                  V P                  V4       K  	  R# )r   zecc_p521_private_enc_%s.pemr   r   Nr   r   r   s   &   r   r   1TestImport_P521.test_import_private_pem_encryptedH  r  r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )zecc_p521_x509.pemNr   r   s   &  r   r  $TestImport_P521.test_import_x509_pemR  r  r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       \        P
                  ! V4      pV P                  V P                  V4       R# )ecc_p521_public_openssh.txtNra  r   s   &  r   rc  *TestImport_P521.test_import_openssh_publicX  re  r   c                    \        R 4      p\        R4      p\        P                  ! V4      p\        P                  ! V4      pV P                  W44       R# )zecc_p521_private_openssh.pemz ecc_p521_private_openssh_old.pemNrg  rh  s   &    r   rk  1TestImport_P521.test_import_openssh_private_cleara  rm  r   c                    \        R 4      p\        R4      p\        P                  ! VR4      p\        P                  ! V4      pV P                  W44       R# )z ecc_p521_private_openssh_pwd.pemz$ecc_p521_private_openssh_pwd_old.pemro  Nrg  rh  s   &    r   rp  4TestImport_P521.test_import_openssh_private_passwordi  rr  r   r  r  r  s   @@r   r  r    r  r   r  c                      a a ] tR tRt oV 3R ltR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tRtVtV ;t# )TestExport_P192ir  c                ^   < \         \        V `
  ! V/ VB  \        4       w  V n        V n        R # r   )r   r  r   rR   r   r   r   s   &*,r   r   TestExport_P192.__init__t  r   r   c                *   \        R 4      pV P                  P                  R4      pV P                  W4       V P                  P	                  RR7      pV P                  W4       V P                  P	                  RRR7      pV P                  W4       R# )r   FDERformatr  compressNr1   r   _export_subjectPublicKeyInfor   
export_keyr   r   encodeds   &  r   #test_export_public_der_uncompressed3TestExport_P192.test_export_public_der_uncompressedx  {    23//>>uE+//,,E,:+//,,EE,J+r   c                    \        R 4      p\        P                  ! V4      pVP                  RRR7      p\        R4      pV P	                  W44       R# )r   r  Tr  r   Nr1   r   r   r  r   r   r   pub_keykey_file_compressedkey_file_compressed_refs   &    r   !test_export_public_der_compressed1TestExport_P192.test_export_public_der_compressed  L    23..*%000M"+,L"M,Fr   c                    \        R 4      p\        V4      pV P                  P                  RR7      pV P	                  W#4       R# )r   SEC1r  Nr1   r   r   r  r   r   r   r{   r  s   &   r   $test_export_public_sec1_uncompressed4TestExport_P192.test_export_public_sec1_uncompressed  <    23+H5//,,F,;(r   c                    \        R 4      pV P                  P                  RRR7      p\        R4      p\        V4      pV P	                  WB4       R# )r   r  Tr  r   Nr1   r   r  r   r   r   r   r  r  r{   s   &    r   "test_export_public_sec1_compressed2TestExport_P192.test_export_public_sec1_compressed  K    23//,,FT,J"+,L"M+,CD(r   c                    \        R 4      pV P                  P                  4       pV P                  W4       V P                  P	                  RRR7      pV P                  W4       R# )r   r  Fr  	use_pkcs8Nr1   r   _export_rfc5915_private_derr   r  r  s   &  r   test_export_rfc5915_private_der/TestExport_P192.test_export_rfc5915_private_der  Z    34"">>@+ ""--Ue-L+r   c                    \        R 4      pV P                  P                  4       pV P                  W4       V P                  P	                  RR7      pV P                  W4       R# )r   r  r  Nr1   r   _export_pkcs8r   r  r  s   &  r   test_export_private_pkcs8_clear/TestExport_P192.test_export_private_pkcs8_clear  X    <=""002+ ""--U-;+r   c                <   V P                   P                  R RR7      pV P                  \        \        P
                  VR4       \        P
                  ! VR 4      pV P                  V P                   V4       V P                   P                  RR RR7      p\        P                  ! VR 4      pV P                  V P                   V4       V P                   P                  RR RR^{/R7      p\        P                  ! VR 4      pV P                  V P                   V4       R# )	r    PBKDF2WithHMAC-SHA1AndAES128-CBC
passphrase
protectionNr  r  r  r  z"PBKDF2WithHMAC-SHA224AndAES192-CBCiteration_countr  r  r  prot_params	r   r  r   r   r   _import_pkcs8r   r  r   r   r  decodeds   &  r   #test_export_private_pkcs8_encrypted3TestExport_P192.test_export_private_pkcs8_encrypted  s   ""00H?a 1 c 	*c&7&7$G##GX6))73 ""--U;C;] . _ ..(3))73 ""--U;C;_=Ns<S . U ..(3))73r   c                H   \        R R4      P                  4       pV P                  P                  R4      pV P	                  W4       V P
                  P                  RR7      pV P	                  W4       V P
                  P                  RRR7      pV P	                  W4       R# )r   rtFPEMr  r  Nr1   stripr   _export_public_pemr   r   r  r  s   &  r   #test_export_public_pem_uncompressed3TestExport_P192.test_export_public_pem_uncompressed      2D9??A""55e<+ //,,E,:+//,,EE,J+r   c                    \        R R4      P                  4       p\        P                  ! V4      pVP	                  RRR7      p\        RR4      P                  4       pV P                  W44       R# )r   r  r  Tr  zecc_p192_public_compressed.pemNr1   r  r   r   r  r   r  s   &    r   !test_export_public_pem_compressed1TestExport_P192.test_export_public_pem_compressed  b    2D9??A..*%000M"+,Ld"S"Y"Y"[,Fr   c                    \        R R4      P                  4       pV P                  P                  R4      pV P	                  W4       V P                  P                  RRR7      pV P	                  W4       R# )r   r  Nr  Fr  r1   r  r   _export_private_pemr   r  r  s   &  r   test_export_private_pem_clear-TestExport_P192.test_export_private_pem_clear  g    3T:@@B""66t<+ ""--Ue-L+r   c                   V P                   P                  R R7      pV P                  \        \        P
                  V4       RV9   g   Q h\        P
                  ! VR4      pV P                  V P                   V4       V P                   P                  RRRR7      p\        P
                  ! VR4      pV P                  V P                   V4       R# r   )r  zEC PRIVATE KEYr   r  Fr  r  r  Nr   r(  r   r   r   r   r   r  r  s   &  r   !test_export_private_pem_encrypted1TestExport_P192.test_export_private_pem_encrypted      ""66)6L 	*cnng>7***..(3))73 ""--U4<38 . : ..(3))73r   c                    \        R R4      P                  4       pV P                  P                  4       pV P	                  W4       V P                  P                  RR7      pV P	                  W4       R# )r   r  r  r  Nr1   r  r   (_export_private_clear_pkcs8_in_clear_pemr   r  r  s   &  r   #test_export_private_pkcs8_and_pem_13TestExport_P192.test_export_private_pkcs8_and_pem_1  c    <dCIIK""KKM+ ""--U-;+r   c                   V P                   P                  R RR7      pV P                  \        \        P
                  V4       RV9   g   Q h\        P
                  ! VR 4      pV P                  V P                   V4       V P                   P                  RR RR7      p\        P
                  ! VR 4      pV P                  V P                   V4       R# r   r
  )r  ENCRYPTED PRIVATE KEYr  r  Nr   ,_export_private_encrypted_pkcs8_in_clear_pemr   r   r   r   r   r  r  s   &  r   #test_export_private_pkcs8_and_pem_23TestExport_P192.test_export_private_pkcs8_and_pem_2      ""OOPX)K P M 	*cnng>&'111..(3))73 ""--U4<4V . X ..(3))73r   c                   V P                   P                  R RR\        4       R7      pV P                   P                  R RR\        4       R7      pV P                  W4       V P                   P                  R RR\        4       R7      pV P                   P                  R RR\        4       R7      pV P                  W4       R# r  r   r
  r  r  r  randfuncFr  r  r  rD  Nr   r  rw   r   r   encoded1encoded2s   &  r   	test_prngTestExport_P192.test_prng"      ##..e5=5W3A3C / E ##..e5=5W3A3C / E 	, ##..e495=3A3C / E ##..e495=3A3C / E 	,r   c                    V P                   P                  R RR\        4       R7      pV P                   P                  R RR\        4       R7      pV P                  W4       R# r  Fr   rE  r   NrF  rG  s   &  r   test_byte_or_string_passphrase.TestExport_P192.test_byte_or_string_passphrase:  h    ##..e495=3A3C / E ##..e495>3A3C / E 	,r   c           	     d   V P                  \        V P                  P                  R R7       V P                  P                  RRRR7       V P                  \        V P                  P                  RRR7       V P                  \        V P                  P                  RRRRR	7       V P                  \        V P                  P                  RRR
7       V P                  \        V P                  P                  RRRR7       V P                  \        V P                  P                  RRRR7       R# XXXr  r  r   Fr.  r  r  r  r
  r  r  r  r  r  r4   r  Nr   r   r   r  r   r   s   &r   test_error_params1"TestExport_P192.test_error_params1E     *d&6&6&A&A%P 	##5X). 	$ 	0*d&6&6&A&A%19 	 	; 	*d&6&6&A&A%19051S 	 	U 	*doo&@&@$) 	 	+ 	*d&6&6&A&A%13u 	 	F*d&6&6&A&A%131S 	 	Ur   c                F   R pRp\         P                  ! V4      p\        VP                  P                  R,          4      pV P                  VR4       \         P                  ! V4      p\        VP                  P                  R,          4      pV P                  VR4       R# )z-----BEGIN EC PRIVATE KEY-----
        MF8CAQEEGHvhXmIW95JxZYfd4AUPu9BwknjuvS36aqAKBggqhkjOPQMBAaE0AzIA
        BLJZCyTu35DQIlqvMlBynn3k1Ig+dWfg/brRhHecxptrbloqFSP8ITw0CwbGF+2X
        5g==
        -----END EC PRIVATE KEY-----z-----BEGIN EC PRIVATE KEY-----
        MF8CAQEEGA3rAotUaWl7d47eX6tz9JmLzOMJwl13XaAKBggqhkjOPQMBAaE0AzIA
        BG4tHlTBBBGokcWmGm2xubVB0NvPC/Ou5AYwivs+3iCxmEjsymVAj6iiuX2Lxr6g
        /Q==
        -----END EC PRIVATE KEY-----   i  i  Nr   r   intpointQyr   r   pem1pem2key1low16key2s   &     r   test_compressed_curve%TestExport_P192.test_compressed_curve`  |    (( ~~d#DKKMME)*'~~d#DKKMME)*'r   r  r   r   r   r   r   r  r  r  r  r   r  r  r  r#  r)  r0  r6  r>  rJ  rO  rX  rg  r   r   r  r  s   @@r   r  r  r  sh     C
,G))	,	,46,G	,4&
,4*-0	-U6( (r   r  c                      a a ] tR tRt oV 3R ltR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tRtVtV ;t# )TestExport_P224iy  c                ^   < \         \        V `
  ! V/ VB  \        4       w  V n        V n        R # r   )r   rl  r   rV   r   r   r   s   &*,r   r   TestExport_P224.__init__{  r   r   c                *   \        R 4      pV P                  P                  R4      pV P                  W4       V P                  P	                  RR7      pV P                  W4       V P                  P	                  RRR7      pV P                  W4       R# )r  Fr  r  r  Nr  r  s   &  r   r  3TestExport_P224.test_export_public_der_uncompressed  r  r   c                    \        R 4      p\        P                  ! V4      pVP                  RRR7      p\        R4      pV P	                  W44       R# )r  r  Tr  r  Nr  r  s   &    r   r  1TestExport_P224.test_export_public_der_compressed  r  r   c                    \        R 4      p\        V4      pV P                  P                  RR7      pV P	                  W#4       R# )r  r  r  Nr  r  s   &   r   r  4TestExport_P224.test_export_public_sec1_uncompressed  r  r   c                    \        R 4      pV P                  P                  RRR7      p\        R4      p\        V4      pV P	                  WB4       R# )r  r  Tr  r  Nr  r  s   &    r   r  2TestExport_P224.test_export_public_sec1_compressed  r  r   c                    \        R 4      pV P                  P                  4       pV P                  W4       V P                  P	                  RRR7      pV P                  W4       R# )r  r  Fr  Nr  r  s   &  r   r   /TestExport_P224.test_export_rfc5915_private_der  r  r   c                    \        R 4      pV P                  P                  4       pV P                  W4       V P                  P	                  RR7      pV P                  W4       R# )r  r  r  Nr  r  s   &  r   r  /TestExport_P224.test_export_private_pkcs8_clear  r  r   c                   V P                   P                  R RR7      pV P                  \        \        P
                  VR4       \        P
                  ! VR 4      pV P                  V P                   V4       V P                   P                  RR RR^{/R7      p\        P                  ! VR 4      pV P                  V P                   V4       R# )r   r
  r  Nr  z&PBKDF2WithHMAC-SHA512-224AndAES128-CBCr  r  r  r  s   &  r   r  3TestExport_P224.test_export_private_pkcs8_encrypted  s    ""00H?a 1 c 	*c&7&7$G##GX6))73 ""--U;C;c=Ns<S . U ..(3))73r   c                H   \        R R4      P                  4       pV P                  P                  R4      pV P	                  W4       V P
                  P                  RR7      pV P	                  W4       V P
                  P                  RRR7      pV P	                  W4       R# )r*  r  Fr  r  r  Nr  r  s   &  r   r  3TestExport_P224.test_export_public_pem_uncompressed  r   r   c                    \        R R4      P                  4       p\        P                  ! V4      pVP	                  RRR7      p\        RR4      P                  4       pV P                  W44       R# )r*  r  r  Tr  zecc_p224_public_compressed.pemNr"  r  s   &    r   r#  1TestExport_P224.test_export_public_pem_compressed  r%  r   c                    \        R R4      P                  4       pV P                  P                  R4      pV P	                  W4       V P                  P                  RRR7      pV P	                  W4       R# )r-  r  Nr  Fr  r'  r  s   &  r   r)  -TestExport_P224.test_export_private_pem_clear  r+  r   c                   V P                   P                  R R7      pV P                  \        \        P
                  V4       RV9   g   Q h\        P
                  ! VR4      pV P                  V P                   V4       V P                   P                  RRRR7      p\        P
                  ! VR4      pV P                  V P                   V4       R# r-  r/  r  s   &  r   r0  1TestExport_P224.test_export_private_pem_encrypted  r2  r   c                    \        R R4      P                  4       pV P                  P                  4       pV P	                  W4       V P                  P                  RR7      pV P	                  W4       R# )r  r  r  r  Nr4  r  s   &  r   r6  3TestExport_P224.test_export_private_pkcs8_and_pem_1   r8  r   c                   V P                   P                  R RR7      pV P                  \        \        P
                  V4       RV9   g   Q h\        P
                  ! VR 4      pV P                  V P                   V4       V P                   P                  RR RR7      p\        P
                  ! VR 4      pV P                  V P                   V4       R# r:  r<  r  s   &  r   r>  3TestExport_P224.test_export_private_pkcs8_and_pem_2  r@  r   c                   V P                   P                  R RR\        4       R7      pV P                   P                  R RR\        4       R7      pV P                  W4       V P                   P                  R RR\        4       R7      pV P                   P                  R RR\        4       R7      pV P                  W4       R# rB  rF  rG  s   &  r   rJ  TestExport_P224.test_prng!  rL  r   c                    V P                   P                  R RR\        4       R7      pV P                   P                  R RR\        4       R7      pV P                  W4       R# rN  rF  rG  s   &  r   rO  .TestExport_P224.test_byte_or_string_passphrase9  rQ  r   c           	     d   V P                  \        V P                  P                  R R7       V P                  P                  RRRR7       V P                  \        V P                  P                  RRR7       V P                  \        V P                  P                  RRRRR	7       V P                  \        V P                  P                  RRR
7       V P                  \        V P                  P                  RRRR7       V P                  \        V P                  P                  RRRR7       R# rS  rW  r   s   &r   rX  "TestExport_P224.test_error_params1D  rZ  r   c                F   R pRp\         P                  ! V4      p\        VP                  P                  R,          4      pV P                  VR4       \         P                  ! V4      p\        VP                  P                  R,          4      pV P                  VR4       R# )z-----BEGIN EC PRIVATE KEY-----
        MGgCAQEEHPYicBNI9nd6wDKAX2l+f3A0Q+KWUQeMqSt5GoOgBwYFK4EEACGhPAM6
        AATCL6rUIDT14zXKoS5GQUMDP/tpc+1iI/FyEZikt2roKDkhU5q08srmqaysbfJN
        eUr7Xf1lnCVGag==
        -----END EC PRIVATE KEY-----z-----BEGIN EC PRIVATE KEY-----
        MGgCAQEEHEFjbaVPLJ3ngZyCibCvT0RLUqSlHjC5Z3e0FtugBwYFK4EEACGhPAM6
        AAT5IvL2V6m48y1JLMGr6ZbnOqNKP9hMf9mxyVkk6/SaRoBoJVkXrNIpYL0P7DS7
        QF8E/OGeZRwvow==
        -----END EC PRIVATE KEY-----r\  ijF  i/  Nr]  ra  s   &     r   rg  %TestExport_P224.test_compressed_curve_  ri  r   r  rj  r  s   @@r   rl  rl  y  sh     C
,G))	,	,4&,G	,4&
,4*-0	-U6( (r   rl  c                      a a ] tR tRt oV 3R ltR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tR tR tRtVtV ;t# )TestExport_P256ix  c                ^   < \         \        V `
  ! V/ VB  \        4       w  V n        V n        R # r   )r   r  r   r[   r   r   r   s   &*,r   r   TestExport_P256.__init__z  r   r   c                *   \        R 4      pV P                  P                  R4      pV P                  W4       V P                  P	                  RR7      pV P                  W4       V P                  P	                  RRR7      pV P                  W4       R# )r8  Fr  r  r  Nr  r  s   &  r   r  3TestExport_P256.test_export_public_der_uncompressed~  r  r   c                    \        R 4      p\        P                  ! V4      pVP                  RRR7      p\        R4      pV P	                  W44       R# )r8  r  Tr  r>  Nr  r  s   &    r   r  1TestExport_P256.test_export_public_der_compressed  r  r   c                    \        R 4      p\        V4      pV P                  P                  RR7      pV P	                  W#4       R# )r8  r  r  Nr  r  s   &   r   r  4TestExport_P256.test_export_public_sec1_uncompressed  r  r   c                    \        R 4      pV P                  P                  RRR7      p\        R4      p\        V4      pV P	                  WB4       R# )r8  r  Tr  r>  Nr  r  s   &    r   r  2TestExport_P256.test_export_public_sec1_compressed  r  r   c                    \        R 4      pV P                  P                  4       pV P                  W4       V P                  P	                  RRR7      pV P                  W4       R# )rA  r  Fr  Nr  r  s   &  r   r   /TestExport_P256.test_export_rfc5915_private_der  r  r   c                    \        R 4      pV P                  P                  4       pV P                  W4       V P                  P	                  RR7      pV P                  W4       R# )rD  r  r  Nr  r  s   &  r   r  /TestExport_P256.test_export_private_pkcs8_clear  r  r   c                <   V P                   P                  R RR7      pV P                  \        \        P
                  VR4       \        P
                  ! VR 4      pV P                  V P                   V4       V P                   P                  RR RR7      p\        P                  ! VR 4      pV P                  V P                   V4       V P                   P                  RR RR^{/R7      p\        P                  ! VR 4      pV P                  V P                   V4       R# )	r   r
  r  Nr  r  z&PBKDF2WithHMAC-SHA512-256AndAES128-CBCr  r  r  r  s   &  r   r  3TestExport_P256.test_export_private_pkcs8_encrypted  s   ""00H?a 1 c 	*c&7&7$G##GX6))73 ""--U;C;] . _ ..(3))73 ""--U;C;c=Ns<S . U ..(3))73r   c                H   \        R R4      P                  4       pV P                  P                  R4      pV P	                  W4       V P
                  P                  RR7      pV P	                  W4       V P
                  P                  RRR7      pV P	                  W4       R# )rR  r  Fr  r  r  Nr  r  s   &  r   r  3TestExport_P256.test_export_public_pem_uncompressed  r   r   c                    \        R R4      P                  4       p\        P                  ! V4      pVP	                  RRR7      p\        RR4      P                  4       pV P                  W44       R# )rR  r  r  Tr  zecc_p256_public_compressed.pemNr"  r  s   &    r   r#  1TestExport_P256.test_export_public_pem_compressed  r%  r   c                    \        R R4      P                  4       pV P                  P                  R4      pV P	                  W4       V P                  P                  RRR7      pV P	                  W4       R# )rU  r  Nr  Fr  r'  r  s   &  r   r)  -TestExport_P256.test_export_private_pem_clear  r+  r   c                   V P                   P                  R R7      pV P                  \        \        P
                  V4       RV9   g   Q h\        P
                  ! VR4      pV P                  V P                   V4       V P                   P                  RRRR7      p\        P
                  ! VR4      pV P                  V P                   V4       R# r-  r/  r  s   &  r   r0  1TestExport_P256.test_export_private_pem_encrypted  r2  r   c                    \        R R4      P                  4       pV P                  P                  4       pV P	                  W4       V P                  P                  RR7      pV P	                  W4       R# )rG  r  r  r  Nr4  r  s   &  r   r6  3TestExport_P256.test_export_private_pkcs8_and_pem_1  r8  r   c                   V P                   P                  R RR7      pV P                  \        \        P
                  V4       RV9   g   Q h\        P
                  ! VR 4      pV P                  V P                   V4       V P                   P                  RR RR7      p\        P
                  ! VR 4      pV P                  V P                   V4       R# r:  r<  r  s   &  r   r>  3TestExport_P256.test_export_private_pkcs8_and_pem_2  r@  r   c                ,   \        R R4      pV P                  P                  R4      pV P                  W4       V P                  P	                  RR7      pV P                  W4       V P                  P	                  RRR7      pV P                  W4       R# )r`  r  FOpenSSHr  r  Nr1   r   _export_opensshr   r  r  s   &  r    test_export_openssh_uncompressed0TestExport_P256.test_export_openssh_uncompressed(      :DA//11%8+ //,,I,>+//,,I,N+r   c                    \        R R4      p\        P                  ! V4      pVP                  RRR7      p\	        V4      \	        V4      8  g   Q hV P                  V\        P                  ! V4      4       R# )r`  r  r  Tr  Nr1   r   r   r  lenr   r   r   r  r  s   &   r   test_export_openssh_compressed.TestExport_P256.test_export_openssh_compressed6  e    :DA..*%00	D0Q8}s#67777#..1D"EFr   c                   V P                   P                  R RR\        4       R7      pV P                   P                  R RR\        4       R7      pV P                  W4       V P                   P                  R RR\        4       R7      pV P                   P                  R RR\        4       R7      pV P                  W4       R# rB  rF  rG  s   &  r   rJ  TestExport_P256.test_prng>  rL  r   c                    V P                   P                  R RR\        4       R7      pV P                   P                  R RR\        4       R7      pV P                  W4       R# rN  rF  rG  s   &  r   rO  .TestExport_P256.test_byte_or_string_passphraseV  rQ  r   c           	        V P                  \        V P                  P                  R R7       V P                  P                  RRRR7       V P                  \        V P                  P                  RRR7       V P                  \        V P                  P                  RRRRR	7       V P                  \        V P                  P                  RRR
7       V P                  \        V P                  P                  RRRR7       V P                  \        V P                  P                  RRRR7       V P                  \        V P                  P                  RRR7       R# rT  r  r  r   Fr.  rU  r  r
  rV  r  r4   r  r  NrW  r   s   &r   rX  "TestExport_P256.test_error_params1a  I   *d&6&6&A&A%P 	##5X). 	$ 	0*d&6&6&A&A%19 	 	; 	*d&6&6&A&A%19051S 	 	U 	*doo&@&@$) 	 	+ 	*d&6&6&A&A%13u 	 	F*d&6&6&A&A%131S 	 	U
 	*d&6&6&A&A)19 	 	;r   c                F   R pRp\         P                  ! V4      p\        VP                  P                  R,          4      pV P                  VR4       \         P                  ! V4      p\        VP                  P                  R,          4      pV P                  VR4       R# )z-----BEGIN EC PRIVATE KEY-----
        MFcCAQEEIHTuc09jC51xXomV6MVCDN+DpAAvSmaJWZPTEHM6D5H1oAoGCCqGSM49
        AwEHoSQDIgACWFuGbHe8yJ43rir7PMTE9w8vHz0BSpXHq90Xi7/s+a0=
        -----END EC PRIVATE KEY-----z-----BEGIN EC PRIVATE KEY-----
        MFcCAQEEIFggiPN9SQP+FAPTCPp08fRUz7rHp2qNBRcBJ1DXhb3ZoAoGCCqGSM49
        AwEHoSQDIgADLpph1trTIlVfa8NJvlMUPyWvL+wP+pW3BJITUL/wj9A=
        -----END EC PRIVATE KEY-----r\  i  iWn  Nr]  ra  s   &     r   rg  %TestExport_P256.test_compressed_curve  s|    ((
 ~~d#DKKMME)*'~~d#DKKMME)*'r   r  r   r   r   r   r   r  r  r  r  r   r  r  r  r#  r)  r0  r6  r>  r  r  rJ  rO  rX  rg  r   r   r  r  s   @@r   r  r  x  ss     C
,G))	,	,46,G	,4&
,4*,G-0	-;@( (r   r  c                      a a ] tR tRt oV 3R ltR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tR tR tRtVtV ;t# )TestExport_P384i  c                ^   < \         \        V `
  ! V/ VB  \        4       w  V n        V n        R # r   )r   r  r   ra   r   r   r   s   &*,r   r   TestExport_P384.__init__  r   r   c                *   \        R 4      pV P                  P                  R4      pV P                  W4       V P                  P	                  RR7      pV P                  W4       V P                  P	                  RRR7      pV P                  W4       R# )rx  Fr  r  r  Nr  r  s   &  r   r  3TestExport_P384.test_export_public_der_uncompressed  r  r   c                    \        R 4      p\        P                  ! V4      pVP                  RRR7      p\        R4      pV P	                  W44       R# )rx  r  Tr  r~  Nr  r  s   &    r   r  1TestExport_P384.test_export_public_der_compressed  r  r   c                    \        R 4      p\        V4      pV P                  P                  RR7      pV P	                  W#4       R# )rx  r  r  Nr  r  s   &   r   r  4TestExport_P384.test_export_public_sec1_uncompressed  r  r   c                    \        R 4      pV P                  P                  RRR7      p\        R4      p\        V4      pV P	                  WB4       R# )rx  r  Tr  r~  Nr  r  s   &    r   r  2TestExport_P384.test_export_public_sec1_compressed  r  r   c                    \        R 4      pV P                  P                  4       pV P                  W4       V P                  P	                  RRR7      pV P                  W4       R# )r  r  Fr  Nr  r  s   &  r   r   /TestExport_P384.test_export_rfc5915_private_der  r  r   c                    \        R 4      pV P                  P                  4       pV P                  W4       V P                  P	                  RR7      pV P                  W4       R# )r  r  r  Nr  r  s   &  r   r  /TestExport_P384.test_export_private_pkcs8_clear  r  r   c                <   V P                   P                  R RR7      pV P                  \        \        P
                  VR4       \        P
                  ! VR 4      pV P                  V P                   V4       V P                   P                  RR RR7      p\        P                  ! VR 4      pV P                  V P                   V4       V P                   P                  RR RR^{/R7      p\        P                  ! VR 4      pV P                  V P                   V4       R# 	r   r
  r  Nr  r  z"PBKDF2WithHMAC-SHA384AndAES128-CBCr  r  r  r  s   &  r   r  3TestExport_P384.test_export_private_pkcs8_encrypted     ""00H7Y 1 [ 	*c&7&7$G##GX6))73 ""--U4<4V . X ..(3))73 ""--U4<4X6G5L . N ..(3))73r   c                H   \        R R4      P                  4       pV P                  P                  R4      pV P	                  W4       V P
                  P                  RR7      pV P	                  W4       V P
                  P                  RRR7      pV P	                  W4       R# )r  r  Fr  r  r  Nr  r  s   &  r   r  3TestExport_P384.test_export_public_pem_uncompressed  r   r   c                    \        R R4      P                  4       p\        P                  ! V4      pVP	                  RRR7      p\        RR4      P                  4       pV P                  W44       R# )r  r  r  Tr  zecc_p384_public_compressed.pemNr"  r  s   &    r   r#  1TestExport_P384.test_export_public_pem_compressed   r%  r   c                    \        R R4      P                  4       pV P                  P                  R4      pV P	                  W4       V P                  P                  RRR7      pV P	                  W4       R# )r  r  Nr  Fr  r'  r  s   &  r   r)  -TestExport_P384.test_export_private_pem_clear	  r+  r   c                   V P                   P                  R R7      pV P                  \        \        P
                  V4       RV9   g   Q h\        P
                  ! VR4      pV P                  V P                   V4       V P                   P                  RRRR7      p\        P
                  ! VR4      pV P                  V P                   V4       R# r-  r/  r  s   &  r   r0  1TestExport_P384.test_export_private_pem_encrypted  r2  r   c                    \        R R4      P                  4       pV P                  P                  4       pV P	                  W4       V P                  P                  RR7      pV P	                  W4       R# )r  r  r  r  Nr4  r  s   &  r   r6  3TestExport_P384.test_export_private_pkcs8_and_pem_1'  r8  r   c                   V P                   P                  R RR7      pV P                  \        \        P
                  V4       RV9   g   Q h\        P
                  ! VR 4      pV P                  V P                   V4       V P                   P                  RR RR7      p\        P
                  ! VR 4      pV P                  V P                   V4       R# r:  r<  r  s   &  r   r>  3TestExport_P384.test_export_private_pkcs8_and_pem_23  r@  r   c                ,   \        R R4      pV P                  P                  R4      pV P                  W4       V P                  P	                  RR7      pV P                  W4       V P                  P	                  RRR7      pV P                  W4       R# )r  r  Fr  r  r  Nr  r  s   &  r   r  0TestExport_P384.test_export_openssh_uncompressedH  r  r   c                    \        R R4      p\        P                  ! V4      pVP                  RRR7      p\	        V4      \	        V4      8  g   Q hV P                  V\        P                  ! V4      4       R# )r  r  r  Tr  Nr  r  s   &   r   r  .TestExport_P384.test_export_openssh_compressedV  r  r   c                   V P                   P                  R RR\        4       R7      pV P                   P                  R RR\        4       R7      pV P                  W4       V P                   P                  R RR\        4       R7      pV P                   P                  R RR\        4       R7      pV P                  W4       R# rB  rF  rG  s   &  r   rJ  TestExport_P384.test_prng^  rL  r   c                    V P                   P                  R RR\        4       R7      pV P                   P                  R RR\        4       R7      pV P                  W4       R# rN  rF  rG  s   &  r   rO  .TestExport_P384.test_byte_or_string_passphrasev  rQ  r   c           	        V P                  \        V P                  P                  R R7       V P                  P                  RRRR7       V P                  \        V P                  P                  RRR7       V P                  \        V P                  P                  RRRRR	7       V P                  \        V P                  P                  RRR
7       V P                  \        V P                  P                  RRRR7       V P                  \        V P                  P                  RRRR7       V P                  \        V P                  P                  RRR7       R# r  rW  r   s   &r   rX  "TestExport_P384.test_error_params1  r  r   c                F   R pRp\         P                  ! V4      p\        VP                  P                  R,          4      pV P                  VR4       \         P                  ! V4      p\        VP                  P                  R,          4      pV P                  VR4       R# )a  -----BEGIN EC PRIVATE KEY-----
MIGkAgEBBDAM0lEIhvXuekK2SWtdbgOcZtBaxa9TxfpO/GcDFZLCJ3JVXaTgwken
QT+C+XLtD6WgBwYFK4EEACKhZANiAATs0kZMhFDu8DoBC21jrSDPyAUn4aXZ/DM4
ylhDfWmb4LEbeszXceIzfhIUaaGs5y1xXaqf5KXTiAAYx2pKUzAAM9lcGUHCGKJG
k4AgUmVJON29XoUilcFrzjDmuye3B6Q=
-----END EC PRIVATE KEY-----a  -----BEGIN EC PRIVATE KEY-----
MIGkAgEBBDDHPFTslYLltE16fHdSDTtE/2HTmd3M8mqy5MttAm4wZ833KXiGS9oe
kFdx9sNV0KygBwYFK4EEACKhZANiAASLIE5RqVMtNhtBH/u/p/ifqOAlKnK/+RrQ
YC46ZRsnKNayw3wATdPjgja7L/DSII3nZK0G6KOOVwJBznT/e+zudUJYhZKaBLRx
/bgXyxUtYClOXxb1Y/5N7txLstYRyP0=
-----END EC PRIVATE KEY-----r\  i  i  Nr]  ra  s   &     r   rg  %TestExport_P384.test_compressed_curve  s|    
   ~~d#DKKMME)*'~~d#DKKMME)*'r   r  r  r  s   @@r   r  r    sr     C
,G))	,	,46,G	,4&
,4*,G-0	-;>( (r   r  c                      a a ] tR tRt oV 3R ltR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tR tR tRtVtV ;t# )TestExport_P521i  c                ^   < \         \        V `
  ! V/ VB  \        4       w  V n        V n        R # r   )r   r  r   rf   r   r   r   s   &*,r   r   TestExport_P521.__init__  r   r   c                *   \        R 4      pV P                  P                  R4      pV P                  W4       V P                  P	                  RR7      pV P                  W4       V P                  P	                  RRR7      pV P                  W4       R# )r  Fr  r  r  Nr  r  s   &  r   r  3TestExport_P521.test_export_public_der_uncompressed  r  r   c                    \        R 4      p\        P                  ! V4      pVP                  RRR7      p\        R4      pV P	                  W44       R# )r  r  Tr  r  Nr  r  s   &    r   r  1TestExport_P521.test_export_public_der_compressed  r  r   c                    \        R 4      p\        V4      pV P                  P                  RR7      pV P	                  W#4       V P                  P                  RR7      pV P	                  W#4       R# )r  r  r  rawNr  r  s   &   r   r  4TestExport_P521.test_export_public_sec1_uncompressed  sa    23+H5//,,F,;(//,,E,:(r   c                    \        R 4      pV P                  P                  RRR7      p\        R4      p\        V4      pV P	                  WB4       V P                  P                  RRR7      pV P	                  WB4       R# )r  r  Tr  r  r  Nr  r  s   &    r   r  2TestExport_P521.test_export_public_sec1_compressed  sr    23//,,FT,J"+,L"M+,CD(//,,ED,I(r   c                    \        R 4      pV P                  P                  4       pV P                  W4       V P                  P	                  RRR7      pV P                  W4       R# )r  r  Fr  Nr  r  s   &  r   r   /TestExport_P521.test_export_rfc5915_private_der  r  r   c                    \        R 4      pV P                  P                  4       pV P                  W4       V P                  P	                  RR7      pV P                  W4       R# )r  r  r  Nr  r  s   &  r   r  /TestExport_P521.test_export_private_pkcs8_clear  r  r   c                <   V P                   P                  R RR7      pV P                  \        \        P
                  VR4       \        P
                  ! VR 4      pV P                  V P                   V4       V P                   P                  RR RR7      p\        P                  ! VR 4      pV P                  V P                   V4       V P                   P                  RR RR^{/R7      p\        P                  ! VR 4      pV P                  V P                   V4       R# )r   r
  r  Nr  r  r  r  r  r  s   &  r   r  3TestExport_P521.test_export_private_pkcs8_encrypted  s   ""00H7Y 1 [ 	*c&7&7$G##GX6))73 ""--U4<4V . X ..(3))73 ""--U4<4V6G5L . N ..(3))73r   c                H   \        R R4      P                  4       pV P                  P                  R4      pV P	                  W4       V P
                  P                  RR7      pV P	                  W4       V P
                  P                  RRR7      pV P	                  W4       R# )r  r  Fr  r  r  Nr  r  s   &  r   r  3TestExport_P521.test_export_public_pem_uncompressed  r   r   c                    \        R R4      P                  4       p\        P                  ! V4      pVP	                  RRR7      p\        RR4      P                  4       pV P                  W44       R# )r  r  r  Tr  zecc_p521_public_compressed.pemNr"  r  s   &    r   r#  1TestExport_P521.test_export_public_pem_compressed+  r%  r   c                    \        R R4      P                  4       pV P                  P                  R4      pV P	                  W4       V P                  P                  RRR7      pV P	                  W4       R# )r  r  Nr  Fr  r'  r  s   &  r   r)  -TestExport_P521.test_export_private_pem_clear4  r+  r   c                   V P                   P                  R R7      pV P                  \        \        P
                  V4       RV9   g   Q h\        P
                  ! VR4      pV P                  V P                   V4       V P                   P                  RRRR7      p\        P
                  ! VR4      pV P                  V P                   V4       R# r-  r/  r  s   &  r   r0  1TestExport_P521.test_export_private_pem_encrypted?  r2  r   c                    \        R R4      P                  4       pV P                  P                  4       pV P	                  W4       V P                  P                  RR7      pV P	                  W4       R# )r  r  r  r  Nr4  r  s   &  r   r6  3TestExport_P521.test_export_private_pkcs8_and_pem_1R  r8  r   c                   V P                   P                  R RR7      pV P                  \        \        P
                  V4       RV9   g   Q h\        P
                  ! VR 4      pV P                  V P                   V4       V P                   P                  RR RR7      p\        P
                  ! VR 4      pV P                  V P                   V4       R# r:  r<  r  s   &  r   r>  3TestExport_P521.test_export_private_pkcs8_and_pem_2^  r@  r   c                ,   \        R R4      pV P                  P                  R4      pV P                  W4       V P                  P	                  RR7      pV P                  W4       V P                  P	                  RRR7      pV P                  W4       R# )r  r  Fr  r  r  Nr  r  s   &  r   r  0TestExport_P521.test_export_openssh_uncompresseds  r  r   c                    \        R R4      p\        P                  ! V4      pVP                  RRR7      p\	        V4      \	        V4      8  g   Q hV P                  V\        P                  ! V4      4       R# )r  r  r  Tr  Nr  r  s   &   r   r  .TestExport_P521.test_export_openssh_compressed  r  r   c                   V P                   P                  R RR\        4       R7      pV P                   P                  R RR\        4       R7      pV P                  W4       V P                   P                  R RR\        4       R7      pV P                   P                  R RR\        4       R7      pV P                  W4       R# rB  rF  rG  s   &  r   rJ  TestExport_P521.test_prng  rL  r   c                    V P                   P                  R RR\        4       R7      pV P                   P                  R RR\        4       R7      pV P                  W4       R# rN  rF  rG  s   &  r   rO  .TestExport_P521.test_byte_or_string_passphrase  rQ  r   c           	        V P                  \        V P                  P                  R R7       V P                  P                  RRRR7       V P                  \        V P                  P                  RRR7       V P                  \        V P                  P                  RRRRR	7       V P                  \        V P                  P                  RRR
7       V P                  \        V P                  P                  RRRR7       V P                  \        V P                  P                  RRRR7       V P                  \        V P                  P                  RRR7       R# r  rW  r   s   &r   rX  "TestExport_P521.test_error_params1  r  r   c                F   R pRp\         P                  ! V4      p\        VP                  P                  R,          4      pV P                  VR4       \         P                  ! V4      p\        VP                  P                  R,          4      pV P                  VR4       R# )al  -----BEGIN EC PRIVATE KEY-----
MIHcAgEBBEIAnm1CEjVjvNfXEN730p+D6su5l+mOztdc5XmTEoti+s2R4GQ4mAv3
0zYLvyklvOHw0+yy8d0cyGEJGb8T3ZVKmg2gBwYFK4EEACOhgYkDgYYABAHzjTI1
ckxQ3Togi0LAxiG0PucdBBBs5oIy3df95xv6SInp70z+4qQ2EltEmdNMssH8eOrl
M5CYdZ6nbcHMVaJUvQEzTrYxvFjOgJiOd+E9eBWbLkbMNqsh1UKVO6HbMbW0ohCI
uGxO8tM6r3w89/qzpG2SvFM/fvv3mIR30wSZDD84qA==
-----END EC PRIVATE KEY-----al  -----BEGIN EC PRIVATE KEY-----
MIHcAgEBBEIB84OfhJluLBRLn3+cC/RQ37C2SfQVP/t0gQK2tCsTf5avRcWYRrOJ
PmX9lNnkC0Hobd75QFRmdxrB0Wd1/M4jZOWgBwYFK4EEACOhgYkDgYYABAAMZcdJ
1YLCGHt3bHCEzdidVy6+brlJIbv1aQ9fPQLF7WKNv4c8w3H8d5a2+SDZilBOsk5c
6cNJDMz2ExWQvxl4CwDJtJGt1+LHVKFGy73NANqVxMbRu+2F8lOxkNp/ziFTbVyV
vv6oYkMIIi7r5oQWAiQDrR2mlrrFDL9V7GH/r8SWQw==
-----END EC PRIVATE KEY-----r\  i8  iC  Nr]  ra  s   &     r   rg  %TestExport_P521.test_compressed_curve  s|    
   ~~d#DKKMME)*'~~d#DKKMME)*'r   r  r  r  s   @@r   r  r    sr     C
,G)	)	,	,46,G	,4&
,4*,G-0	-;>( (r   r  c                      a a ] tR tRt oV 3R ltR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tRtVtV ;t# )TestImport_Ed25519i  c                ^   < \         \        V `
  ! V/ VB  \        4       w  V n        V n        R # r   )r   r   r   ro   r   r   r   s   &*,r   r   TestImport_Ed25519.__init__  *     $0$A&A,C,E)$/r   c                J   \        R 4      p\        P                  ! V4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       \        P                  ! V4      pV P                  V P                  V4       R# )ecc_ed25519_public.derNr   r   s   &  r   r   )TestImport_Ed25519.test_import_public_der  sw    56..x8#.ooh-#.nnX&#.r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! V4      pV P                  V P                  V4       R# )ecc_ed25519_private.derNr   r   s   &  r   test_import_pkcs8_der(TestImport_Ed25519.test_import_pkcs8_der  sW    67ooh-))3/nnX&))3/r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       R# )zecc_ed25519_private_p8.derr   Nr   r   s   &  r   r   8TestImport_Ed25519.test_import_private_pkcs8_encrypted_1	  Y    9:ooh1))3/nnXx0))3/r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       R# )zecc_ed25519_private_p8.pemr   Nr   r   s   &  r   r   8TestImport_Ed25519.test_import_private_pkcs8_encrypted_2	  s3    9:nnXx0))3/r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       R# )zecc_ed25519_private_p8_2.derr   Nr   r   s   &  r   r$  8TestImport_Ed25519.test_import_private_pkcs8_encrypted_3	  sY    ;<ooh1))3/nnXx0))3/r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! V4      pV P                  V P                  V4       R# )zecc_ed25519_x509.derNr   r   s   &  r   r   'TestImport_Ed25519.test_import_x509_der	  sS    34ooh-#.nnX&#.r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )ecc_ed25519_public.pemNr   r   s   &  r   r   )TestImport_Ed25519.test_import_public_pem&	  s/    56nnX&#.r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )ecc_ed25519_private.pemNr   r   s   &  r   r   *TestImport_Ed25519.test_import_private_pem,	  s1    67nnX&))3/r   c                   R F  p\        RV,          4      p\        P                  ! VR4      pV P                  V P                  V4       \        P                  ! \        V4      R4      pV P                  V P                  V4       K  	  R# )r   zecc_ed25519_private_enc_%s.pemr   r   Nr   r   r   r   r   r   s   &   r   r   4TestImport_Ed25519.test_import_private_pem_encrypted2	  sl    8D !AD!HIH..84CT--s3..x)<CT--s3 9r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )zecc_ed25519_x509.pemNr   r   s   &  r   r  'TestImport_Ed25519.test_import_x509_pem<	  /    34nnX&#.r   c                    \        R 4      p\        P                  ! V4      pV P                  VP	                  4       4       \        P
                  ! V4      pV P                  VP	                  4       4       R# )ecc_ed25519_public_openssh.txtN)r1   r   rb  assertFalsehas_privater   r   s   &  r   rc  -TestImport_Ed25519.test_import_openssh_publicB	  sU    =>((2*+nnX&*+r   c                H    \        R 4      p\        P                  ! V4      pR# )zecc_ed25519_private_openssh.pemNrX  r   s   &  r   rk  4TestImport_Ed25519.test_import_openssh_private_clearI	  s    >?nnX&r   c                J    \        R 4      p\        P                  ! VR4      pR# )z#ecc_ed25519_private_openssh_pwd.pemro  NrX  r   s   &  r   rp  7TestImport_Ed25519.test_import_openssh_private_passwordM	  s    BCnnX{3r   r  )r   r   r   r   r   r   r)  r   r   r$  r   r   r   r   r  rc  rk  rp  r   r   r  r  s   @@r   r   r     sQ     F
/0000//04/,'4 4r   r   c                   z   a a ] tR tRt oV 3R ltR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tRtVtV ;t# )TestExport_Ed25519iR	  c                ^   < \         \        V `
  ! V/ VB  \        4       w  V n        V n        R # r   )r   rJ  r   ro   r   r   r   s   &*,r   r   TestExport_Ed25519.__init__T	  r#  r   c                *   \        R 4      pV P                  P                  R4      pV P                  W4       V P                  P	                  RR7      pV P                  W4       V P                  P	                  RRR7      pV P                  W4       R# )r%  Tr  r  Fr  Nr  r  s   &  r   test_export_public_der)TestExport_Ed25519.test_export_public_derX	  s{    56//>>tD+//,,E,:+//,,EE,J+r   c                ^    V P                  \        V P                  P                  R R7       R# r  r  Nr   r   r   r  r   s   &r   test_export_public_sec1*TestExport_Ed25519.test_export_public_sec1d	  !    *doo&@&@Pr   c                &   \        R 4      pV P                  P                  4       pV P                  W4       V P                  P	                  RR7      pV P                  W4       V P                  \        V P                  P                  RRR7       R# )r(  r  r  Fr  Nr1   r   r  r   r  r   r   r  s   &  r   r  2TestExport_Ed25519.test_export_private_pkcs8_clearg	  s    67""002+ ""--U-;+*d&6&6&A&A!&% 	 	9r   c                <   V P                   P                  R RR7      pV P                  \        \        P
                  VR4       \        P
                  ! VR 4      pV P                  V P                   V4       V P                   P                  RR RR7      p\        P                  ! VR 4      pV P                  V P                   V4       V P                   P                  RR RR^{/R7      p\        P                  ! VR 4      pV P                  V P                   V4       R# )	r   r
  r  Nr  r  z"PBKDF2WithHMAC-SHA256AndAES128-CBCr  r  r  r  s   &  r   r  6TestExport_Ed25519.test_export_private_pkcs8_encryptedu	  r  r   c                    \        R R4      P                  4       pV P                  P                  RR7      P                  4       pV P	                  W4       R# )r5  r  r  r  Nr1   r  r   r  r   r   key_file_refr   s   &  r   test_export_public_pem)TestExport_Ed25519.test_export_public_pem	  sF     !94@FFH??--U-;AAC0r   c                    \        R R4      P                  4       pV P                  P                  RR7      P                  4       pV P	                  W4       R# )r8  r  r  r  Nr1   r  r   r  r   r  s   &  r   r)  0TestExport_Ed25519.test_export_private_pem_clear	  sH    6=CCE""--U-;AAC+r   c                   V P                   P                  R RRR7      pV P                  \        \        P
                  V4       RV9   g   Q h\        P
                  ! VR4      pV P                  V P                   V4       R# r  r   r
  r  r;  r   Nr   r  r   r   r   r   r   r  s   &  r   r0  4TestExport_Ed25519.test_export_private_pem_encrypted	  r    ""--U9B:\ . ^
 	*cnng>&'111..(3))73r   c                Z   \        R R4      p\        P                  ! V4      pRP                  VP	                  R4      R,          4      pVP                  R4      pV P                  WP                  4       4       VP                  RR7      pV P                  WP                  4       4       R# )rA  r  r3   :Nr=   NFr  r  N)	r1   r   r   r$   splitr  r   r  r  )r   r   rl   r  s   &   r   test_export_openssh&TestExport_Ed25519.test_export_openssh	  s    =tD^^H-
88HNN3/34,,U3==?3''y'9==?3r   c                t    V P                   P                  R R7      pV P                  V\        R4      4       R# )r  r  s@   bc85b8cf585d20a4de47e84d1cb6183f63d9ba96223fcbc886e363ffdea20cffNr   r  r   r   r   r  s   & r   test_export_raw"TestExport_Ed25519.test_export_raw	  s/    //,,E,:),o"pqr   c                    V P                   P                  R RR\        4       R7      pV P                   P                  R RR\        4       R7      pV P                  W4       R# r  r   r
  rC  NrF  rG  s   &  r   rJ  TestExport_Ed25519.test_prng	  h    ##..e5=5W3A3C / E ##..e5=5W3A3C / E 	,r   c                    V P                   P                  R RR\        4       R7      pV P                   P                  R RR\        4       R7      pV P                  W4       R# r  r   r
  rC  r   NrF  rG  s   &  r   rO  1TestExport_Ed25519.test_byte_or_string_passphrase	  h    ##..e5=5W3A3C / E ##..e5>5W3A3C / E 	,r   c                   V P                  \        V P                  P                  R R7       V P                  \        V P                  P                  RRR7       V P                  \        V P                  P                  RRRR7       V P                  \        V P                  P                  RRRR	7       V P                  \        V P                  P                  R
RR7       R# rT  r  r  r   rU  r4   Fr.  r
  r  r  Nr   r   r   r  r   s   &r   rX  %TestExport_Ed25519.test_error_params1	      *d&6&6&A&A%P 	*d&6&6&A&A%19 	 	; 	*d&6&6&A&A%13u 	 	F*d&6&6&A&A%131S 	 	U
 	*d&6&6&A&A)19 	 	;r   r  r   r   r   r   r   rN  rS  r  r  r_  r)  r0  rk  rp  rJ  rO  rX  r   r   r  r  s   @@r   rJ  rJ  R	  sN     F
,Q9461
,
4	4r
-	-; ;r   rJ  c                   n   a a ] tR tRt oV 3R ltR tR tR tR tR t	R t
R	 tR
 tR tR tRtVtV ;t# )TestImport_Ed448i	  c                ^   < \         \        V `
  ! V/ VB  \        4       w  V n        V n        R # r   )r   r  r   rs   r   r   r   s   &*,r   r   TestImport_Ed448.__init__	  *    .??,A,C)$/r   c                J   \        R 4      p\        P                  ! V4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       \        P                  ! V4      pV P                  V P                  V4       R# )ecc_ed448_public.derNr   r   s   &  r   r   'TestImport_Ed448.test_import_public_der	  sw    34..x8#.ooh-#.nnX&#.r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! V4      pV P                  V P                  V4       R# )ecc_ed448_private.derNr   r   s   &  r   r)  &TestImport_Ed448.test_import_pkcs8_der	  sW    45ooh-))3/nnX&))3/r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       R# )zecc_ed448_private_p8.derr   Nr   r   s   &  r   r   6TestImport_Ed448.test_import_private_pkcs8_encrypted_1	  sY    78ooh1))3/nnXx0))3/r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       R# )zecc_ed448_private_p8.pemr   Nr   r   s   &  r   r   6TestImport_Ed448.test_import_private_pkcs8_encrypted_2
  s3    78nnXx0))3/r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! VR4      pV P                  V P                  V4       R# )zecc_ed448_private_p8_2.derr   Nr   r   s   &  r   r$  6TestImport_Ed448.test_import_private_pkcs8_encrypted_3
  r-  r   c                    \        R 4      p\        P                  ! VR4      pV P                  V P                  V4       \        P
                  ! V4      pV P                  V P                  V4       R# )zecc_ed448_x509.derNr   r   s   &  r   r   %TestImport_Ed448.test_import_x509_der
  sS    12ooh-#.nnX&#.r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )ecc_ed448_public.pemNr   r   s   &  r   r   'TestImport_Ed448.test_import_public_pem
  r?  r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )ecc_ed448_private.pemNr   r   s   &  r   r   (TestImport_Ed448.test_import_private_pem#
  s1    45nnX&))3/r   c                   R F  p\        RV,          4      p\        P                  ! VR4      pV P                  V P                  V4       \        P                  ! \        V4      R4      pV P                  V P                  V4       K  	  R# )r   zecc_ed448_private_enc_%s.pemr   r   Nr;  r   r   s   &   r   r   2TestImport_Ed448.test_import_private_pem_encrypted)
  sl    8D !?$!FGH..84CT--s3..x)<CT--s3 9r   c                    \        R 4      p\        P                  ! V4      pV P                  V P                  V4       R# )zecc_ed448_x509.pemNr   r   s   &  r   r  %TestImport_Ed448.test_import_x509_pem3
  s/    12nnX&#.r   r  )r   r   r   r   r   r   r)  r   r   r$  r   r   r   r   r  r   r   r  r  s   @@r   r  r  	  sB     D
/0000//04/ /r   r  c                   z   a a ] tR tRt oV 3R ltR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tRtVtV ;t# )TestExport_Ed448i:
  c                ^   < \         \        V `
  ! V/ VB  \        4       w  V n        V n        R # r   )r   r  r   rs   r   r   r   s   &*,r   r   TestExport_Ed448.__init__<
  r  r   c                *   \        R 4      pV P                  P                  R4      pV P                  W4       V P                  P	                  RR7      pV P                  W4       V P                  P	                  RRR7      pV P                  W4       R# )r  Tr  r  Fr  Nr  r  s   &  r   rN  'TestExport_Ed448.test_export_public_der@
  s{    34//>>tD+//,,E,:+//,,EE,J+r   c                ^    V P                  \        V P                  P                  R R7       R# rQ  rR  r   s   &r   rS  (TestExport_Ed448.test_export_public_sec1L
  rU  r   c                &   \        R 4      pV P                  P                  4       pV P                  W4       V P                  P	                  RR7      pV P                  W4       V P                  \        V P                  P                  RRR7       R# )r  r  r  Fr  NrW  r  s   &  r   r  0TestExport_Ed448.test_export_private_pkcs8_clearO
  s    45""002+ ""--U-;+*d&6&6&A&A!&% 	 	9r   c                <   V P                   P                  R RR7      pV P                  \        \        P
                  VR4       \        P
                  ! VR 4      pV P                  V P                   V4       V P                   P                  RR RR7      p\        P                  ! VR 4      pV P                  V P                   V4       V P                   P                  RR RR^{/R7      p\        P                  ! VR 4      pV P                  V P                   V4       R# r  r  r  s   &  r   r  4TestExport_Ed448.test_export_private_pkcs8_encrypted]
  r  r   c                    \        R R4      P                  4       pV P                  P                  RR7      P                  4       pV P	                  W4       R# )r  r  r  r  Nr\  r]  s   &  r   r_  'TestExport_Ed448.test_export_public_pemy
  sF     !7>DDF??--U-;AAC0r   c                    \        R R4      P                  4       pV P                  P                  RR7      P                  4       pV P	                  W4       R# )r  r  r  r  Nrb  r  s   &  r   r)  .TestExport_Ed448.test_export_private_pem_clear~
  sH    4d;AAC""--U-;AAC+r   c                   V P                   P                  R RRR7      pV P                  \        \        P
                  V4       RV9   g   Q h\        P
                  ! VR4      pV P                  V P                   V4       R# re  rf  r  s   &  r   r0  2TestExport_Ed448.test_export_private_pem_encrypted
  rh  r   c                ^    V P                  \        V P                  P                  R R7       R# )r  r  NrR  r   s   &r   rk  $TestExport_Ed448.test_export_openssh
  s!    *doo&@&@Sr   c                t    V P                   P                  R R7      pV P                  V\        R4      4       R# )r  r  sr   899014ddc0a0e1260cfc1085afdf952019e9fd63372e3e366e26dad32b176624884330a14617237e3081febd9d1a15069e7499433d2f55dd80Nrn  ro  s   & r   rp   TestExport_Ed448.test_export_raw
  s8    //,,E,:)  -b  #c  	dr   c                    V P                   P                  R RR\        4       R7      pV P                   P                  R RR\        4       R7      pV P                  W4       R# rs  rF  rG  s   &  r   rJ  TestExport_Ed448.test_prng
  ru  r   c                    V P                   P                  R RR\        4       R7      pV P                   P                  R RR\        4       R7      pV P                  W4       R# rw  rF  rG  s   &  r   rO  /TestExport_Ed448.test_byte_or_string_passphrase
  ry  r   c                   V P                  \        V P                  P                  R R7       V P                  \        V P                  P                  RRR7       V P                  \        V P                  P                  RRRR7       V P                  \        V P                  P                  RRRR	7       V P                  \        V P                  P                  R
RR7       R# r{  r|  r   s   &r   rX  #TestExport_Ed448.test_error_params1
  r~  r   r  r  r  s   @@r   r  r  :
  sO     D
,Q9481
,
4Td
-	-; ;r   r  c                    . pV\        \        4      ,          p V\        \        4      ,          pV\        \        4      ,          pV\        \        4      ,          pV\        \
        4      ,          pV\        \        4      ,          pV\        \        4      ,          pV\        \        4      ,          pV\        \        4      ,          pV\        \        4      ,          pV\        \        4      ,          pV\        \        4      ,          pV\        \        4      ,          pV\        \        4      ,          pV\        \        4      ,          pV#   \          d     T# i ; ir   )r   r   r   r
  r4  rt  r  r   r  r  rl  r  r  r  rJ  r  r   )configtestss   & r   	get_testsr  
  s   E	_Z((E1111111111!344!1221111111111!344!122 L & Ls   D4E EE__main__c                  >    \         P                  ! \        4       4      # r   )unittest	TestSuiter  r   r   r   <lambda>r  
  s    H&&y{3r   suite)defaultTest)rb);r   r   r'   r  binasciir   Crypto.SelfTest.st_commonr   Crypto.Util.py3compatr   r   r   Crypto.Util.asn1r   r	   Crypto.Util.numberr
   Crypto.Hashr   Crypto.PublicKeyr   Crypto.PublicKey.ECCr   r"   r   ImportErrorr   r   r1   r9   rR   rV   r[   ra   rf   ro   rs   rw   r   TestCaser   r   r
  r4  rt  r  r  rl  r  r  r  r   rJ  r  r  r  r   r  mainr   r   r   <module>r     s  > 
     5 @ @ 6 ,     4#$!
	 	4C

V
V
V
V
V##/d"" dBk/h'' k/\t/h'' t/nR'h'' R'jM'h'' M'`M'h'' M'`D(h'' D(N|(h'' |(~](h'' ](@	b(h'' b(J	j(h'' j(Z	e4** e4PL;** L;^V/x(( V/rF;x(( F;R  2 z3EMMg& UU  #"#s   G 	G+*G+