@wildboar/pkcs
Version:
Public Key Cryptography Standard PDUs in TypeScript
44 lines (43 loc) • 2.22 kB
JavaScript
/* eslint-disable */
import { ASN1TagClass as _TagClass } from "@wildboar/asn1";
import * as $ from "@wildboar/asn1/functional";
import { _get_decoder_for_EnvelopedData, _get_encoder_for_EnvelopedData, } from "../PKCS-15/EnvelopedData.ta.mjs";
import { _decode_Path, _encode_Path } from "../PKCS-15/Path.ta.mjs";
import { _get_decoder_for_ReferencedValue, _get_encoder_for_ReferencedValue, } from "../PKCS-15/ReferencedValue.ta.mjs";
/**
* @summary Returns a function that will decode an ASN.1 element into a(n) PathOrObjects
* @function
* @param {_Element} el The element being decoded.
* @returns A function that will decode an ASN.1 element.
*/
export function _get_decoder_for_PathOrObjects(_decode_ObjectType) {
return $._decode_extensible_choice({
"UNIVERSAL 16": ["path", _decode_Path],
"CONTEXT 0": [
"objects",
$._decode_implicit(() => $._decodeSequenceOf(() => _decode_ObjectType)),
],
"CONTEXT 1": [
"indirect_protected",
$._decode_explicit(() => _get_decoder_for_ReferencedValue(_get_decoder_for_EnvelopedData($._decodeSequenceOf(() => _decode_ObjectType)))),
],
"CONTEXT 2": [
"direct_protected",
$._decode_implicit(() => _get_decoder_for_EnvelopedData($._decodeSequenceOf(() => _decode_ObjectType))),
],
});
}
/**
* @summary Returns a function that will encode a(n) PathOrObjects into an ASN.1 Element.
* @function
* @returns A function that will encode a(n) PathOrObjects as an ASN.1 element.
*/
export function _get_encoder_for_PathOrObjects(_encode_ObjectType) {
return $._encode_choice({
path: _encode_Path,
objects: $._encode_implicit(_TagClass.context, 0, () => $._encodeSequenceOf(() => _encode_ObjectType, $.BER), $.BER),
indirect_protected: $._encode_explicit(_TagClass.context, 1, () => _get_encoder_for_ReferencedValue(_get_encoder_for_EnvelopedData($._encodeSequenceOf(() => _encode_ObjectType, $.BER))), $.BER),
direct_protected: $._encode_implicit(_TagClass.context, 2, () => _get_encoder_for_EnvelopedData($._encodeSequenceOf(() => _encode_ObjectType, $.BER)), $.BER),
}, $.BER);
}
/* eslint-enable */