hyb
2026-01-30 44480e71b27aa9d4cb8441f50c873f1b110e9691
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
Ë
ž¬`i[ãóB—dZdgZddlmZddlmZGd„de«Zd„Zy)z
OpenPGP mode.
Ú OpenPgpModeé)Ú _copy_bytes)Úget_random_bytescó"—eZdZdZd„Zd„Zd„Zy)razOpenPGP mode.
 
    This mode is a variant of CFB, and it is only used in PGP and
    OpenPGP_ applications. If in doubt, use another mode.
 
    An Initialization Vector (*IV*) is required.
 
    Unlike CFB, the *encrypted* IV (not the IV itself) is
    transmitted to the receiver.
 
    The IV is a random data block. For legacy reasons, two of its bytes are
    duplicated to act as a checksum for the correctness of the key, which is now
    known to be insecure and is ignored. The encrypted IV is therefore 2 bytes
    longer than the clean IV.
 
    .. _OpenPGP: http://tools.ietf.org/html/rfc4880
 
    :undocumented: __init__
    cóœ—|j|_d|_|j||jfd|jz|jdzdœ|¤Ž}t    dd|«}t |«|jk(r|j ||ddz«|_n^t |«|jdzk(r||_|j|«dd}n'td|j|jdzfz«‚|x|_
|_ |j||jf|j|j d|jdzdœ|¤Ž|_ y)NFóé)ÚIVÚ segment_sizeéþÿÿÿéz4Length of IV must be %d or %d bytes for MODE_OPENPGP) Ú
block_sizeÚ_done_first_blockÚnewÚMODE_CFBrÚlenÚencryptÚ _encrypted_IVÚdecryptÚ
ValueErrorÚivr
Ú_cipher)ÚselfÚfactoryÚkeyrÚ cipher_paramsÚ    IV_ciphers      õnH:\项目\archive\测试组\脚本\Change_password\venv_build\Lib\site-packages\Crypto/Cipher/_mode_openpgp.pyÚ__init__zOpenPgpMode.__init__=si€ð"×,Ñ,ˆŒà!&ˆÔð G—K‘KØØ×(Ñ(ð)ð# T§_¡_Ñ4Ø%)§_¡_°qÑ%8ñ    )ð
(ñ )ˆ    ô˜˜t RÓ (ˆô ˆr‹7d—o‘oÒ %à!*×!2Ñ!2°2¸¸2¸3¸±<Ó!@ˆDÕ Ü ‹W˜Ÿ™¨!Ñ+Ò +à!#ˆDÔ ð×"Ñ" 2Ó& s¨Ð+‰Bäð1à $§¡°·±À1Ñ1DÐEñFóGð GðЈŒ$”'ð#w—{‘{ØØ#×,Ñ,ð-ð $×1Ñ1°4·?±?Ð2BÐ2CÐDØ)-¯©¸1Ñ)<ñ    -ð
,ñ -ˆ ócó€—|jj|«}|js|j|z}d|_|S)a›Encrypt data with the key and the parameters set at initialization.
 
        A cipher object is stateful: once you have encrypted a message
        you cannot encrypt (or decrypt) another message using the same
        object.
 
        The data to encrypt can be broken up in two or
        more pieces and `encrypt` can be called multiple times.
 
        That is, the statement:
 
            >>> c.encrypt(a) + c.encrypt(b)
 
        is equivalent to:
 
             >>> c.encrypt(a+b)
 
        This function does not add any padding to the plaintext.
 
        :Parameters:
          plaintext : bytes/bytearray/memoryview
            The piece of data to encrypt.
 
        :Return:
            the encrypted data, as a byte string.
            It is as long as *plaintext* with one exception:
            when encrypting the first message chunk,
            the encypted IV is prepended to the returned ciphertext.
        T)rrrr)rÚ    plaintextÚress   rrzOpenPgpMode.encryptgs>€ð>l‰l×"Ñ" 9Ó-ˆØ×%Ò%Ø×$Ñ$ sÑ*ˆCØ%)ˆDÔ "؈
r có8—|jj|«S)aÙDecrypt data with the key and the parameters set at initialization.
 
        A cipher object is stateful: once you have decrypted a message
        you cannot decrypt (or encrypt) another message with the same
        object.
 
        The data to decrypt can be broken up in two or
        more pieces and `decrypt` can be called multiple times.
 
        That is, the statement:
 
            >>> c.decrypt(a) + c.decrypt(b)
 
        is equivalent to:
 
             >>> c.decrypt(a+b)
 
        This function does not remove any padding from the plaintext.
 
        :Parameters:
          ciphertext : bytes/bytearray/memoryview
            The piece of data to decrypt.
 
        :Return: the decrypted data (byte string).
        )rr)rÚ
ciphertexts  rrzOpenPgpMode.decryptŒs€ð6|‰|×#Ñ# JÓ/Ð/r N)Ú__name__Ú
__module__Ú __qualname__Ú__doc__rrr©r rrr(s„ñò((-òT#óJ0r c ó4—|jdd«}|jdd«}d||fk(rt|j«}| | td«‚|}    |jd«}t ||||«S#t$r}tdt |«z«‚d}~wwxYw)a#Create a new block cipher, configured in OpenPGP mode.
 
    :Parameters:
      factory : module
        The module.
 
    :Keywords:
      key : bytes/bytearray/memoryview
        The secret key to use in the symmetric cipher.
 
      IV : bytes/bytearray/memoryview
        The initialization vector to use for encryption or decryption.
 
        For encryption, the IV must be as long as the cipher block size.
 
        For decryption, it must be 2 bytes longer (it is actually the
        *encrypted* IV which was prefixed to the ciphertext).
    r
Nr)NNz*You must either use 'iv' or 'IV', not bothrzMissing component: )ÚpoprrÚ    TypeErrorÚKeyErrorÚstrr)rÚkwargsrr
rÚes      rÚ_create_openpgp_cipherr2ªs¨€ð(
‰D˜$Ó    €BØ    ‰D˜$Ó    €Bà˜˜BxÒÜ ˜g×0Ñ0Ó 1ˆØ    €~Ø ˆ>ÜÐHÓIÐ Ià ˆð8؏j‰j˜Óˆô w  R¨Ó 0Ð0øô ò8ÜÐ-´°A³Ñ6Ó7Ð7ûð8úsÁA2Á2    BÁ;BÂBN)    r)Ú__all__ÚCrypto.Util.py3compatrÚ Crypto.RandomrÚobjectrr2r*r rú<module>r7s-ðñ>ð ˆ/€å-Ý*ô0&ô0óD$1r