Enum class EncryptionScheme
Package: keychain.constants
Description
Public-key encryption algorithm.
This enum defines specific encryption schemes with concrete parameters for each algorithm class. Each scheme specifies the exact curve, key size, or other parameters needed for implementation.
Since: v2.0
Enum Class Summary
Enum Constant | Value | Description |
---|---|---|
1 |
ECIES over 160-bit prime-field Weierstrass curve secp160r1 |
|
2 |
ECIES over 192-bit prime-field Weierstrass curve secp192k1 |
|
3 |
ECIES over randomly generated, 224-bit prime-field Weierstrass curve secp224r1 |
|
4 |
ECIES over randomly generated, 256-bit prime-field Weierstrass curve secp256r1 |
|
5 |
ECIES over 384-bit prime-field Weierstrass curve secp384r1 |
|
6 |
ECIES over 521-bit prime-field Weierstrass curve secp512r1 |
|
7 |
RSA with OAEP, SHA-256, and 1024-bit key |
|
8 |
RSA with OAEP, SHA-256, and 2048-bit key |
|
9 |
RSA with OAEP, SHA-256, and 3072-bit key |
|
10 |
RSA with OAEP, SHA-256, and 4096-bit key |
|
11 |
DLIES with SHA-256 and 1024-bit key |
|
12 |
DLIES with SHA-256 and 2048-bit key |
|
13 |
DLIES with SHA-256 and 3072-bit key |
|
14 |
DLIES with SHA-256 and 4096-bit key |
|
15 |
ElGamal with 1024-bit key |
|
16 |
ElGamal with 2048-bit key |
|
17 |
ElGamal with 3072-bit key |
|
18 |
ElGamal with 4096-bit key |
Enum Class Detail
ECIES Schemes
ECIES_ECP_SECP160R1
Value: 1
Elliptic Curve Integrated Encryption Scheme over 160-bit prime-field Weierstrass curve secp160r1.
ECIES_ECP_SECP192K1
Value: 2
Elliptic Curve Integrated Encryption Scheme over 192-bit prime-field Weierstrass curve secp192k1.
ECIES_ECP_SECP224R1
Value: 3
Elliptic Curve Integrated Encryption Scheme over a randomly generated, 224-bit prime-field Weierstrass curve secp224r1.
ECIES_ECP_SECP256R1
Value: 4
Elliptic Curve Integrated Encryption Scheme over a randomly generated, 256-bit prime-field Weierstrass curve secp256r1.
RSA Schemes
RSA_OAEP_SHA_1024
Value: 7
RSA Encryption Scheme with Optimal Asymmetric Encryption Padding, SHA-256, and 1024-bit key.
RSA_OAEP_SHA_2048
Value: 8
RSA Encryption Scheme with Optimal Asymmetric Encryption Padding, SHA-256, and 2048-bit key.
Usage Example
from keychain.constants import EncryptionScheme, EncryptionAlgorithmClass
# Select a specific encryption scheme
scheme = EncryptionScheme.ECIES_ECP_SECP256R1
print(f"Selected scheme: {scheme}") # Outputs: 4
# Choose scheme based on security requirements
def select_encryption_scheme(security_level="medium"):
if security_level == "low":
return EncryptionScheme.RSA_OAEP_SHA_2048
elif security_level == "medium":
return EncryptionScheme.ECIES_ECP_SECP256R1
elif security_level == "high":
return EncryptionScheme.RSA_OAEP_SHA_4096
else:
return EncryptionScheme.ECIES_ECP_SECP384R1
recommended_scheme = select_encryption_scheme("high")
print(f"Recommended scheme: {recommended_scheme}")
# Get algorithm class from scheme
def get_algorithm_class(scheme):
if "ECIES" in scheme.name:
return EncryptionAlgorithmClass.ECIES
elif "RSA" in scheme.name:
return EncryptionAlgorithmClass.RSA
elif "DLIES" in scheme.name:
return EncryptionAlgorithmClass.DLIES
elif "ELGAMAL" in scheme.name:
return EncryptionAlgorithmClass.ELGAMAL
return None
alg_class = get_algorithm_class(scheme)
print(f"Algorithm class: {alg_class}")