Viewing File: /opt/imunify360/venv/lib/python3.11/site-packages/Crypto/IO/__pycache__/PKCS8.cpython-311.pyc
]jn# l d dl T d dlmZmZmZmZ d dlmZmZm Z ddgZ
ddd e dfdZd dZdS )
)*)DerNullDerSequenceDerObjectIdDerOctetString)PBES1PBES2 PbesErrorwrapunwrapNc d |t t | g }nt t | |g }t d|t | g }| } || S |st d t | }|d}t
j | |||| S )a/ Wrap a private key into a PKCS#8 blob (clear or encrypted).
Args:
private_key (byte string):
The private key encoded in binary form. The actual encoding is
algorithm specific. In most cases, it is DER.
key_oid (string):
The object identifier (OID) of the private key to wrap.
It is a dotted string, like ``1.2.840.113549.1.1.1`` (for RSA keys).
passphrase (bytes string or string):
The secret passphrase from which the wrapping key is derived.
Set it only if encryption is required.
protection (string):
The identifier of the algorithm to use for securely wrapping the key.
The default value is ``PBKDF2WithHMAC-SHA1AndDES-EDE3-CBC``.
prot_params (dictionary):
Parameters for the protection algorithm.
+------------------+-----------------------------------------------+
| Key | Description |
+==================+===============================================+
| iteration_count | The KDF algorithm is repeated several times to|
| | slow down brute force attacks on passwords |
| | (called *N* or CPU/memory cost in scrypt). |
| | The default value for PBKDF2 is 1000. |
| | The default value for scrypt is 16384. |
+------------------+-----------------------------------------------+
| salt_size | Salt is used to thwart dictionary and rainbow |
| | attacks on passwords. The default value is 8 |
| | bytes. |
+------------------+-----------------------------------------------+
| block_size | *(scrypt only)* Memory-cost (r). The default |
| | value is 8. |
+------------------+-----------------------------------------------+
| parallelization | *(scrypt only)* CPU-cost (p). The default |
| | value is 1. |
+------------------+-----------------------------------------------+
key_params (DER object or None):
The ``parameters`` field to use in the ``AlgorithmIdentifier``
SEQUENCE. If ``None``, no ``parameters`` field will be added.
By default, the ASN.1 type ``NULL`` is used.
randfunc (callable):
Random number generation function; it should accept a single integer
N and return a string of random data, N bytes long.
If not specified, a new RNG will be instantiated
from :mod:`Crypto.Random`.
Return:
The PKCS#8-wrapped private key (possibly encrypted), as a byte string.
Nr zEmpty passphrasez"PBKDF2WithHMAC-SHA1AndDES-EDE3-CBC)r r r encode
ValueErrortobytesr encrypt)
private_keykey_oid
passphrase
protectionprot_params
key_paramsrandfunc algorithmpk_infopk_info_ders
q/builddir/build/BUILD/imunify360-venv-2.6.3/opt/imunify360/venv/lib64/python3.11/site-packages/Crypto/IO/PKCS8.pyr r 2 s H W!5!5 677 W!5!5z BCC {++ G
..""K -+,,, $$J9
=j#[(<