| Index: third_party/google-endpoints/pyasn1_modules/rfc5208.py
|
| diff --git a/third_party/google-endpoints/pyasn1_modules/rfc5208.py b/third_party/google-endpoints/pyasn1_modules/rfc5208.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d1d2c16911bcc2ab97b7d611f4d3c1967fceb0ee
|
| --- /dev/null
|
| +++ b/third_party/google-endpoints/pyasn1_modules/rfc5208.py
|
| @@ -0,0 +1,39 @@
|
| +#
|
| +# PKCS#8 syntax
|
| +#
|
| +# ASN.1 source from:
|
| +# http://tools.ietf.org/html/rfc5208
|
| +#
|
| +# Sample captures could be obtained with "openssl pkcs8 -topk8" command
|
| +#
|
| +from pyasn1.type import tag, namedtype, namedval, univ, constraint
|
| +from pyasn1_modules.rfc2459 import *
|
| +from pyasn1_modules import rfc2251
|
| +
|
| +class KeyEncryptionAlgorithms(AlgorithmIdentifier): pass
|
| +
|
| +class PrivateKeyAlgorithms(AlgorithmIdentifier): pass
|
| +
|
| +class EncryptedData(univ.OctetString): pass
|
| +
|
| +class EncryptedPrivateKeyInfo(univ.Sequence):
|
| + componentType = namedtype.NamedTypes(
|
| + namedtype.NamedType('encryptionAlgorithm', AlgorithmIdentifier()),
|
| + namedtype.NamedType('encryptedData', EncryptedData())
|
| + )
|
| +
|
| +class PrivateKey(univ.OctetString): pass
|
| +
|
| +class Attributes(univ.SetOf):
|
| + componentType = rfc2251.Attribute()
|
| +
|
| +class Version(univ.Integer):
|
| + namedValues = namedval.NamedValues(('v1', 0), ('v2', 1))
|
| +
|
| +class PrivateKeyInfo(univ.Sequence):
|
| + componentType = namedtype.NamedTypes(
|
| + namedtype.NamedType('version', Version()),
|
| + namedtype.NamedType('privateKeyAlgorithm', AlgorithmIdentifier()),
|
| + namedtype.NamedType('privateKey', PrivateKey()),
|
| + namedtype.OptionalNamedType('attributes', Attributes().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0)))
|
| + )
|
|
|