12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- # This file is dual licensed under the terms of the Apache License, Version
- # 2.0, and the BSD License. See the LICENSE file in the root of this repository
- # for complete details.
- import abc
- from cryptography import utils
- # This exists to break an import cycle. These classes are normally accessible
- # from the serialization module.
- class Encoding(utils.Enum):
- PEM = "PEM"
- DER = "DER"
- OpenSSH = "OpenSSH"
- Raw = "Raw"
- X962 = "ANSI X9.62"
- SMIME = "S/MIME"
- class PrivateFormat(utils.Enum):
- PKCS8 = "PKCS8"
- TraditionalOpenSSL = "TraditionalOpenSSL"
- Raw = "Raw"
- OpenSSH = "OpenSSH"
- class PublicFormat(utils.Enum):
- SubjectPublicKeyInfo = "X.509 subjectPublicKeyInfo with PKCS#1"
- PKCS1 = "Raw PKCS#1"
- OpenSSH = "OpenSSH"
- Raw = "Raw"
- CompressedPoint = "X9.62 Compressed Point"
- UncompressedPoint = "X9.62 Uncompressed Point"
- class ParameterFormat(utils.Enum):
- PKCS3 = "PKCS3"
- class KeySerializationEncryption(metaclass=abc.ABCMeta):
- pass
- class BestAvailableEncryption(KeySerializationEncryption):
- def __init__(self, password: bytes):
- if not isinstance(password, bytes) or len(password) == 0:
- raise ValueError("Password must be 1 or more bytes.")
- self.password = password
- class NoEncryption(KeySerializationEncryption):
- pass
|