OXIESEC PANEL
- Current Dir:
/
/
usr
/
lib
/
python3
/
dist-packages
/
asn1crypto
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
03/17/2025 09:32:20 AM
rwxr-xr-x
📄
__init__.py
209 bytes
01/24/2017 02:23:55 PM
rw-r--r--
📁
__pycache__
-
10/21/2019 03:49:46 PM
rwxr-xr-x
📄
_elliptic_curve.py
9.2 KB
11/07/2017 09:32:35 PM
rw-r--r--
📄
_errors.py
967 bytes
08/04/2017 02:19:33 PM
rw-r--r--
📄
_ffi.py
738 bytes
07/15/2016 01:53:18 AM
rw-r--r--
📄
_inet.py
4.55 KB
11/07/2017 09:09:57 PM
rw-r--r--
📄
_int.py
4.51 KB
01/23/2017 04:49:03 PM
rw-r--r--
📄
_iri.py
8.43 KB
03/03/2017 11:10:52 AM
rw-r--r--
📄
_ordereddict.py
4.43 KB
10/08/2015 01:39:26 PM
rw-r--r--
📁
_perf
-
10/21/2019 03:49:46 PM
rwxr-xr-x
📄
_teletex_codec.py
4.93 KB
10/08/2015 01:39:30 PM
rw-r--r--
📄
_types.py
939 bytes
02/01/2017 12:20:37 PM
rw-r--r--
📄
algos.py
33.3 KB
11/22/2017 04:10:10 PM
rw-r--r--
📄
cms.py
24.53 KB
11/20/2017 12:22:36 PM
rw-r--r--
📄
core.py
153.57 KB
11/21/2017 05:02:30 PM
rw-r--r--
📄
crl.py
15.73 KB
09/15/2017 10:48:38 AM
rw-r--r--
📄
csr.py
2.09 KB
09/15/2017 10:48:44 AM
rw-r--r--
📄
keys.py
34.36 KB
11/22/2017 04:15:11 PM
rw-r--r--
📄
ocsp.py
17.38 KB
09/15/2017 10:49:11 AM
rw-r--r--
📄
parser.py
8.93 KB
08/04/2017 02:19:37 PM
rw-r--r--
📄
pdf.py
2.2 KB
09/15/2017 10:49:21 AM
rw-r--r--
📄
pem.py
6 KB
11/28/2017 04:18:08 PM
rw-r--r--
📄
pkcs12.py
4.46 KB
09/15/2017 10:49:30 AM
rw-r--r--
📄
tsp.py
7.64 KB
09/15/2017 10:49:49 AM
rw-r--r--
📄
util.py
17.62 KB
02/01/2017 12:20:37 PM
rw-r--r--
📄
version.py
154 bytes
12/14/2017 09:01:31 PM
rw-r--r--
📄
x509.py
90.14 KB
12/14/2017 09:01:31 PM
rw-r--r--
Editing: pkcs12.py
Close
# coding: utf-8 """ ASN.1 type classes for PKCS#12 files. Exports the following items: - CertBag() - CrlBag() - Pfx() - SafeBag() - SecretBag() Other type classes are defined that help compose the types listed above. """ from __future__ import unicode_literals, division, absolute_import, print_function from .algos import DigestInfo from .cms import ContentInfo, SignedData from .core import ( Any, BMPString, Integer, ObjectIdentifier, OctetString, ParsableOctetString, Sequence, SequenceOf, SetOf, ) from .keys import PrivateKeyInfo, EncryptedPrivateKeyInfo from .x509 import Certificate, KeyPurposeId # The structures in this file are taken from https://tools.ietf.org/html/rfc7292 class MacData(Sequence): _fields = [ ('mac', DigestInfo), ('mac_salt', OctetString), ('iterations', Integer, {'default': 1}), ] class Version(Integer): _map = { 3: 'v3' } class AttributeType(ObjectIdentifier): _map = { # https://tools.ietf.org/html/rfc2985#page-18 '1.2.840.113549.1.9.20': 'friendly_name', '1.2.840.113549.1.9.21': 'local_key_id', # https://support.microsoft.com/en-us/kb/287547 '1.3.6.1.4.1.311.17.1': 'microsoft_local_machine_keyset', # https://github.com/frohoff/jdk8u-dev-jdk/blob/master/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java # this is a set of OIDs, representing key usage, the usual value is a SET of one element OID 2.5.29.37.0 '2.16.840.1.113894.746875.1.1': 'trusted_key_usage', } class SetOfAny(SetOf): _child_spec = Any class SetOfBMPString(SetOf): _child_spec = BMPString class SetOfOctetString(SetOf): _child_spec = OctetString class SetOfKeyPurposeId(SetOf): _child_spec = KeyPurposeId class Attribute(Sequence): _fields = [ ('type', AttributeType), ('values', None), ] _oid_specs = { 'friendly_name': SetOfBMPString, 'local_key_id': SetOfOctetString, 'microsoft_csp_name': SetOfBMPString, 'trusted_key_usage': SetOfKeyPurposeId, } def _values_spec(self): return self._oid_specs.get(self['type'].native, SetOfAny) _spec_callbacks = { 'values': _values_spec } class Attributes(SetOf): _child_spec = Attribute class Pfx(Sequence): _fields = [ ('version', Version), ('auth_safe', ContentInfo), ('mac_data', MacData, {'optional': True}) ] _authenticated_safe = None @property def authenticated_safe(self): if self._authenticated_safe is None: content = self['auth_safe']['content'] if isinstance(content, SignedData): content = content['content_info']['content'] self._authenticated_safe = AuthenticatedSafe.load(content.native) return self._authenticated_safe class AuthenticatedSafe(SequenceOf): _child_spec = ContentInfo class BagId(ObjectIdentifier): _map = { '1.2.840.113549.1.12.10.1.1': 'key_bag', '1.2.840.113549.1.12.10.1.2': 'pkcs8_shrouded_key_bag', '1.2.840.113549.1.12.10.1.3': 'cert_bag', '1.2.840.113549.1.12.10.1.4': 'crl_bag', '1.2.840.113549.1.12.10.1.5': 'secret_bag', '1.2.840.113549.1.12.10.1.6': 'safe_contents', } class CertId(ObjectIdentifier): _map = { '1.2.840.113549.1.9.22.1': 'x509', '1.2.840.113549.1.9.22.2': 'sdsi', } class CertBag(Sequence): _fields = [ ('cert_id', CertId), ('cert_value', ParsableOctetString, {'explicit': 0}), ] _oid_pair = ('cert_id', 'cert_value') _oid_specs = { 'x509': Certificate, } class CrlBag(Sequence): _fields = [ ('crl_id', ObjectIdentifier), ('crl_value', OctetString, {'explicit': 0}), ] class SecretBag(Sequence): _fields = [ ('secret_type_id', ObjectIdentifier), ('secret_value', OctetString, {'explicit': 0}), ] class SafeContents(SequenceOf): pass class SafeBag(Sequence): _fields = [ ('bag_id', BagId), ('bag_value', Any, {'explicit': 0}), ('bag_attributes', Attributes, {'optional': True}), ] _oid_pair = ('bag_id', 'bag_value') _oid_specs = { 'key_bag': PrivateKeyInfo, 'pkcs8_shrouded_key_bag': EncryptedPrivateKeyInfo, 'cert_bag': CertBag, 'crl_bag': CrlBag, 'secret_bag': SecretBag, 'safe_contents': SafeContents } SafeContents._child_spec = SafeBag