Index: tools/telemetry/third_party/gsutilz/third_party/pyasn1-modules/pyasn1_modules/rfc3447.py |
diff --git a/tools/telemetry/third_party/gsutilz/third_party/pyasn1-modules/pyasn1_modules/rfc3447.py b/tools/telemetry/third_party/gsutilz/third_party/pyasn1-modules/pyasn1_modules/rfc3447.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..96dea7fcb5d13334645e3ca13f2189b6ad456695 |
--- /dev/null |
+++ b/tools/telemetry/third_party/gsutilz/third_party/pyasn1-modules/pyasn1_modules/rfc3447.py |
@@ -0,0 +1,35 @@ |
+# |
+# PKCS#1 syntax |
+# |
+# ASN.1 source from: |
+# ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-1/pkcs-1v2-1.asn |
+# |
+# Sample captures could be obtained with "openssl genrsa" command |
+# |
+from pyasn1_modules.rfc2437 import * |
+ |
+class OtherPrimeInfo(univ.Sequence): |
+ componentType = namedtype.NamedTypes( |
+ namedtype.NamedType('prime', univ.Integer()), |
+ namedtype.NamedType('exponent', univ.Integer()), |
+ namedtype.NamedType('coefficient', univ.Integer()) |
+ ) |
+ |
+class OtherPrimeInfos(univ.SequenceOf): |
+ componentType = OtherPrimeInfo() |
+ subtypeSpec = univ.SequenceOf.subtypeSpec + \ |
+ constraint.ValueSizeConstraint(1, MAX) |
+ |
+class RSAPrivateKey(univ.Sequence): |
+ componentType = namedtype.NamedTypes( |
+ namedtype.NamedType('version', univ.Integer(namedValues=namedval.NamedValues(('two-prime', 0), ('multi', 1)))), |
+ namedtype.NamedType('modulus', univ.Integer()), |
+ namedtype.NamedType('publicExponent', univ.Integer()), |
+ namedtype.NamedType('privateExponent', univ.Integer()), |
+ namedtype.NamedType('prime1', univ.Integer()), |
+ namedtype.NamedType('prime2', univ.Integer()), |
+ namedtype.NamedType('exponent1', univ.Integer()), |
+ namedtype.NamedType('exponent2', univ.Integer()), |
+ namedtype.NamedType('coefficient', univ.Integer()), |
+ namedtype.OptionalNamedType('otherPrimeInfos', OtherPrimeInfos()) |
+ ) |