hyb
2026-01-30 7657e1b2fa251a2ea372710ad75cb395a3c0e374
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
Ë
ž¬`i<ãóš—ddgZddlZddlmZmZmZmZddlmZddl    m
Z
m Z ddl m Z mZmZddlmZdd    lmZdd
lmZmZdd „Zd „Zdd „Zy)ÚencodeÚdecodeéN)Ú
a2b_base64Ú
b2a_base64ÚhexlifyÚ    unhexlify)ÚMD5)ÚpadÚunpad)ÚDESÚDES3ÚAES)ÚPBKDF1)Úget_random_bytes)ÚtobytesÚtostrc óD—|€t}d|z}|r§|d«}t||ddt«}|t||z|ddt«z }tj|tj
|«}|dt t|«j««zz }|jt||j««}n | td«‚tdt|«d«Dcgc]}t t|||dz««‘Œ}    }|d    j!|    «z }|d
|zz }|Scc}w) a4Encode a piece of binary data into PEM format.
 
    Args:
      data (byte string):
        The piece of binary data to encode.
      marker (string):
        The marker for the PEM block (e.g. "PUBLIC KEY").
        Note that there is no official master list for all allowed markers.
        Still, you can refer to the OpenSSL_ source code.
      passphrase (byte string):
        If given, the PEM block will be encrypted. The key is derived from
        the passphrase.
      randfunc (callable):
        Random number generation function; it accepts an integer N and returns
        a byte string of random data, N bytes long. If not given, a new one is
        instantiated.
 
    Returns:
      The PEM block, as a string.
 
    .. _OpenSSL: https://github.com/openssl/openssl/blob/master/include/openssl/pem.h
    z-----BEGIN %s-----
éééz2Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,%s
 
zEmpty passwordré0Úz-----END %s-----)rrr    r ÚnewÚMODE_CBCrrÚupperÚencryptr
Ú
block_sizeÚ
ValueErrorÚrangeÚlenrÚjoin)
ÚdataÚmarkerÚ
passphraseÚrandfuncÚoutÚsaltÚkeyÚobjencÚiÚchunkss
          õ`H:\项目\archive\测试组\脚本\Change_password\venv_build\Lib\site-packages\Crypto/IO/PEM.pyrr/s+€ð0ÐÜ#ˆà
  6Ñ
)€CÙᘋ{ˆÜZ  r¨1¬cÓ2ˆØ Œvc˜JÑ&¨¨a°´CÓ8Ñ8ˆÜ—‘˜#œtŸ}™}¨dÓ3ˆØ ÐFÜ ”'˜$“-×%Ñ%Ó'Ó (ñ)ñ    )ˆð~‰~œc $¨×(9Ñ(9Ó:Ó;‰Ø    Р   ÜÐ)Ó*Ð*ô
˜Q¤ D£    ¨2Ó.ö0Øô”J˜t A a¨"¡f˜~Ó.Õ/ð0€Fð0àˆ27‰76‹?Ñ€CØÐ  Ñ &Ñ&€CØ €Jùò    0sÃ!Dcóڗdg}|dzdz}t|«D]?}tj|d|z|z«j«}|j    |«ŒAdj |«d|S)Nóéréÿÿÿÿ)rr    rÚdigestÚappendr!)r"r'Úkey_lenÚdÚmÚ_Únds       r,Ú_EVP_BytesToKeyr8asp€Ø
ˆ€AØ    2‰˜2Ñ€AÜ 1‹XòˆÜ W‰WQr‘U˜T‘\ DÑ(Ó )× 0Ñ 0Ó 2ˆØ    ‰ ðð 8‰8A‹;x˜Ð  Ð r.có^—tjd«}|j|«}|s td«‚|j    d«}tjd«}|j |«}|r|j    d«|k7r td«‚|j dd«j«}t|«dkr td    «‚|djd
«rò|s td «‚|d jd «}t|«d k7s|ddk7r td«‚|djd«\}}tt|««}d}    |dk(r4t||d«}
tj|
tj|«} nD|dk(r4t||d«}
t!j|
t j|«} n |dk(r6t||ddd«}
t#j|
t"j|«} nÐ|dk(r6t||ddd«}
t#j|
t"j|«} n•|dk(r6t||ddd«}
t#j|
t"j|«} nZ|j%«dk(r9t||ddd«}
t#j|
t"j&|¬«} d}    ntd |z«‚|d d}nd} t)dj+|dd!««} d} | r;    r&t-| j/| «| j0«} n| j/| «} d} | || fS)"aDecode a PEM block into binary.
 
    Args:
      pem_data (string):
        The PEM block.
      passphrase (byte string):
        If given and the PEM block is encrypted,
        the key will be derived from the passphrase.
 
    Returns:
      A tuple with the binary data, the marker string, and a boolean to
      indicate if decryption was performed.
 
    Raises:
      ValueError: if decoding fails, if the PEM file is encrypted and no passphrase has
                  been provided or if the passphrase is incorrect.
    z\s*-----BEGIN (.*)-----\s+zNot a valid PEM pre boundaryrz-----END (.*)-----\s*$zNot a valid PEM post boundaryú réz%A PEM file must have at least 3 lineszProc-Type:4,ENCRYPTEDz-PEM is encrypted, but no passphrase availableéú:rzDEK-Infoz$PEM encryption format not supported.ú,TzDES-CBCrz DES-EDE3-CBCéz AES-128-CBCNrz AES-192-CBCz AES-256-CBCé z id-aes256-gcm)ÚnonceFz(Unsupport PEM encryption algorithm (%s).r0)ÚreÚcompileÚmatchrÚgroupÚsearchÚreplaceÚsplitr Ú
startswithrrr8r rrr rÚlowerÚMODE_GCMrr!r Údecryptr)Úpem_datar$Úrr5r#ÚlinesÚDEKÚalgor'Úpaddingr(Úobjdecr"Úenc_flags              r,rrjsÞ€ô(     
‰
Ð0Ó1€AØ    ‰Ó€AÙ ÜÐ7Ó8Ð8Ø W‰WQ‹Z€Fô     
‰
Ð,Ó-€AØ    ‰Ó€AÙ —‘˜“
˜fÒ$ÜÐ8Ó9Ð9ð × Ñ ˜S "Ó %× +Ñ +Ó -€EÜ
ˆ5ƒzA‚~ÜÐ@ÓAÐAð ˆQx×ÑÐ2Õ3ÙÜÐLÓMÐ MؐA‰hn‰n˜SÓ!ˆÜ ˆs‹8qŠ=˜C ™F jÒ0ÜÐCÓDÐ Dؘ‘V—\‘\ #Ó&‰
ˆˆdÜœ ›Ó'ˆàˆà 9Ò Ü! *¨d°AÓ6ˆCÜ—W‘W˜S¤#§,¡,°Ó5ŠFØ ^Ò #Ü! *¨d°BÓ7ˆCÜ—X‘X˜c¤4§=¡=°$Ó7ŠFØ ]Ò "Ü! *¨d°2°A¨h¸Ó;ˆCÜ—W‘W˜S¤#§,¡,°Ó5‰FØ ]Ò "Ü! *¨d°2°A¨h¸Ó;ˆCÜ—W‘W˜S¤#§,¡,°Ó5‰FØ ]Ò "Ü! *¨d°2°A¨h¸Ó;ˆCÜ—W‘W˜S¤#§,¡,°Ó5‰FØ Z‰Z‹\˜_Ò ,Ü! *¨d°2°A¨h¸Ó;ˆCÜ—W‘W˜S¤#§,¡,°dÔ;ˆF؉GäÐGÈ$ÑNÓOÐ Oؐab    ‰àˆô b—g‘g˜e A b˜kÓ*Ó +€DØ€H٠٠ܘŸ™¨Ó-¨v×/@Ñ/@ÓA‰Dð—>‘> $Ó'ˆDØˆà &˜(Ð #Ð#r.)NN)N)Ú__all__rBÚbinasciirrrrÚ Crypto.Hashr    ÚCrypto.Util.Paddingr
r Ú Crypto.Cipherr r rÚCrypto.Protocol.KDFrÚ Crypto.RandomrÚCrypto.Util.py3compatrrrr8r©r.r,ú<module>r^sAððD XÐ
€ã    ß?Ó?åß*ß(Ñ(Ý&Ý*ß0ó/òd!ôU$r.