aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJörn Heissler <nosuchaddress@joern.heissler.de>2019-11-03 10:40:57 +0100
committerJörn Heissler <nosuchaddress@joern.heissler.de>2019-11-04 17:30:21 +0100
commit754aa9d064133b219529c4a7295c228552519092 (patch)
tree1fe1efbbb6cbd61074f3354ad358b0574d8001ca
parentd43d2b56aa00ce29f4022906e85dd0e6115cf9c8 (diff)
downloadasn1crypto-754aa9d064133b219529c4a7295c228552519092.tar.gz
Add brainpool curves from rfc5639
Closes: #163
-rw-r--r--asn1crypto/keys.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/asn1crypto/keys.py b/asn1crypto/keys.py
index 05f1313..f75422e 100644
--- a/asn1crypto/keys.py
+++ b/asn1crypto/keys.py
@@ -388,6 +388,21 @@ class NamedCurve(ObjectIdentifier):
'1.3.132.0.37': 'sect409r1',
'1.3.132.0.38': 'sect571k1',
'1.3.132.0.39': 'sect571r1',
+ # https://tools.ietf.org/html/rfc5639#section-4.1
+ '1.3.36.3.3.2.8.1.1.1': 'brainpoolp160r1',
+ '1.3.36.3.3.2.8.1.1.2': 'brainpoolp160t1',
+ '1.3.36.3.3.2.8.1.1.3': 'brainpoolp192r1',
+ '1.3.36.3.3.2.8.1.1.4': 'brainpoolp192t1',
+ '1.3.36.3.3.2.8.1.1.5': 'brainpoolp224r1',
+ '1.3.36.3.3.2.8.1.1.6': 'brainpoolp224t1',
+ '1.3.36.3.3.2.8.1.1.7': 'brainpoolp256r1',
+ '1.3.36.3.3.2.8.1.1.8': 'brainpoolp256t1',
+ '1.3.36.3.3.2.8.1.1.9': 'brainpoolp320r1',
+ '1.3.36.3.3.2.8.1.1.10': 'brainpoolp320t1',
+ '1.3.36.3.3.2.8.1.1.11': 'brainpoolp384r1',
+ '1.3.36.3.3.2.8.1.1.12': 'brainpoolp384t1',
+ '1.3.36.3.3.2.8.1.1.13': 'brainpoolp512r1',
+ '1.3.36.3.3.2.8.1.1.14': 'brainpoolp512t1',
}
_key_sizes = {
@@ -453,6 +468,23 @@ class NamedCurve(ObjectIdentifier):
'1.3.132.0.37': 51,
'1.3.132.0.38': 72,
'1.3.132.0.39': 72,
+ # Order values used to compute these sourced from
+ # https://tools.ietf.org/html/rfc5639#section-3
+ # ceil(q.bit_length() / 8)
+ '1.3.36.3.3.2.8.1.1.1': 20,
+ '1.3.36.3.3.2.8.1.1.2': 20,
+ '1.3.36.3.3.2.8.1.1.3': 24,
+ '1.3.36.3.3.2.8.1.1.4': 24,
+ '1.3.36.3.3.2.8.1.1.5': 28,
+ '1.3.36.3.3.2.8.1.1.6': 28,
+ '1.3.36.3.3.2.8.1.1.7': 32,
+ '1.3.36.3.3.2.8.1.1.8': 32,
+ '1.3.36.3.3.2.8.1.1.9': 40,
+ '1.3.36.3.3.2.8.1.1.10': 40,
+ '1.3.36.3.3.2.8.1.1.11': 48,
+ '1.3.36.3.3.2.8.1.1.12': 48,
+ '1.3.36.3.3.2.8.1.1.13': 64,
+ '1.3.36.3.3.2.8.1.1.14': 64,
}
@classmethod