@wildboar/pkcs
Version:
Public Key Cryptography Standard PDUs in TypeScript
85 lines (84 loc) • 3.91 kB
JavaScript
/* eslint-disable */
import { ASN1TagClass as _TagClass } from "@wildboar/asn1";
import * as $ from "@wildboar/asn1/functional";
import { _decode_AuthObjects, _encode_AuthObjects, } from "../PKCS-15/AuthObjects.ta.mjs";
import { _decode_Certificates, _encode_Certificates, } from "../PKCS-15/Certificates.ta.mjs";
import { _decode_DataObjects, _encode_DataObjects, } from "../PKCS-15/DataObjects.ta.mjs";
import { _decode_PrivateKeys, _encode_PrivateKeys, } from "../PKCS-15/PrivateKeys.ta.mjs";
import { _decode_PublicKeys, _encode_PublicKeys, } from "../PKCS-15/PublicKeys.ta.mjs";
import { _decode_SecretKeys, _encode_SecretKeys, } from "../PKCS-15/SecretKeys.ta.mjs";
let _cached_decoder_for_PKCS15Objects = null;
/**
* @summary Decodes an ASN.1 element into a(n) PKCS15Objects
* @function
* @param {_Element} el The element being decoded.
* @returns {PKCS15Objects} The decoded data structure.
*/
export function _decode_PKCS15Objects(el) {
if (!_cached_decoder_for_PKCS15Objects) {
_cached_decoder_for_PKCS15Objects = $._decode_extensible_choice({
"CONTEXT 0": [
"privateKeys",
$._decode_explicit(() => _decode_PrivateKeys),
],
"CONTEXT 1": [
"publicKeys",
$._decode_explicit(() => _decode_PublicKeys),
],
"CONTEXT 2": [
"trustedPublicKeys",
$._decode_explicit(() => _decode_PublicKeys),
],
"CONTEXT 3": [
"secretKeys",
$._decode_explicit(() => _decode_SecretKeys),
],
"CONTEXT 4": [
"certificates",
$._decode_explicit(() => _decode_Certificates),
],
"CONTEXT 5": [
"trustedCertificates",
$._decode_explicit(() => _decode_Certificates),
],
"CONTEXT 6": [
"usefulCertificates",
$._decode_explicit(() => _decode_Certificates),
],
"CONTEXT 7": [
"dataObjects",
$._decode_explicit(() => _decode_DataObjects),
],
"CONTEXT 8": [
"authObjects",
$._decode_explicit(() => _decode_AuthObjects),
],
});
}
return _cached_decoder_for_PKCS15Objects(el);
}
let _cached_encoder_for_PKCS15Objects = null;
/**
* @summary Encodes a(n) PKCS15Objects into an ASN.1 Element.
* @function
* @param value The element being encoded.
* @param elGetter A function that can be used to get new ASN.1 elements.
* @returns {_Element} The PKCS15Objects, encoded as an ASN.1 Element.
*/
export function _encode_PKCS15Objects(value, elGetter) {
if (!_cached_encoder_for_PKCS15Objects) {
_cached_encoder_for_PKCS15Objects = $._encode_choice({
privateKeys: $._encode_explicit(_TagClass.context, 0, () => _encode_PrivateKeys, $.BER),
publicKeys: $._encode_explicit(_TagClass.context, 1, () => _encode_PublicKeys, $.BER),
trustedPublicKeys: $._encode_explicit(_TagClass.context, 2, () => _encode_PublicKeys, $.BER),
secretKeys: $._encode_explicit(_TagClass.context, 3, () => _encode_SecretKeys, $.BER),
certificates: $._encode_explicit(_TagClass.context, 4, () => _encode_Certificates, $.BER),
trustedCertificates: $._encode_explicit(_TagClass.context, 5, () => _encode_Certificates, $.BER),
usefulCertificates: $._encode_explicit(_TagClass.context, 6, () => _encode_Certificates, $.BER),
dataObjects: $._encode_explicit(_TagClass.context, 7, () => _encode_DataObjects, $.BER),
authObjects: $._encode_explicit(_TagClass.context, 8, () => _encode_AuthObjects, $.BER),
}, $.BER);
}
return _cached_encoder_for_PKCS15Objects(value, elGetter);
}
/* eslint-enable */