| # |
| # This file is part of pyasn1-modules software. |
| # |
| # Copyright (c) 2005-2019, Ilya Etingof <[email protected]> |
| # License: http://snmplabs.com/pyasn1/license.html |
| # |
| # 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_modules import rfc2251 |
| from pyasn1_modules.rfc2459 import * |
| |
| |
| 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))) |
| ) |