pkix1implicit88.erl
来自「OTP是开放电信平台的简称」· ERL 代码 · 共 2,076 行 · 第 1/5 页
ERL
2,076 行
%% Generated by the Erlang ASN.1 BER_V2-compiler version, utilizing bit-syntax:1.4.5%% Purpose: encoder and decoder to the types in mod PKIX1Implicit88-module('PKIX1Implicit88').-include("PKIX1Implicit88.hrl").-define('RT_BER',asn1rt_ber_bin_v2).-asn1_info([{vsn,'1.4.5'}, {module,'PKIX1Implicit88'}, {options,[ber_bin_v2,report_errors,{cwd,[47,108,100,105,115,107,47,100,97,105,108,121,95,98,117,105,108,100,47,111,116,112,95,112,114,101,98,117,105,108,100,95,114,49,49,98,46,50,48,48,55,45,48,54,45,49,49,95,49,57,47,111,116,112,95,115,114,99,95,82,49,49,66,45,53,47,108,105,98,47,115,115,108,47,112,107,105,120]},{outdir,[47,108,100,105,115,107,47,100,97,105,108,121,95,98,117,105,108,100,47,111,116,112,95,112,114,101,98,117,105,108,100,95,114,49,49,98,46,50,48,48,55,45,48,54,45,49,49,95,49,57,47,111,116,112,95,115,114,99,95,82,49,49,66,45,53,47,108,105,98,47,115,115,108,47,112,107,105,120]},noobj,optimize,compact_bit_string,der,{i,[46]},{i,[47,108,100,105,115,107,47,100,97,105,108,121,95,98,117,105,108,100,47,111,116,112,95,112,114,101,98,117,105,108,100,95,114,49,49,98,46,50,48,48,55,45,48,54,45,49,49,95,49,57,47,111,116,112,95,115,114,99,95,82,49,49,66,45,53,47,108,105,98,47,115,115,108,47,112,107,105,120]}]}]).-export([encoding_rule/0]).-export(['enc_AuthorityKeyIdentifier'/2,'enc_KeyIdentifier'/2,'enc_SubjectKeyIdentifier'/2,'enc_KeyUsage'/2,'enc_PrivateKeyUsagePeriod'/2,'enc_CertificatePolicies'/2,'enc_PolicyInformation'/2,'enc_CertPolicyId'/2,'enc_PolicyQualifierInfo'/2,'enc_PolicyQualifierId'/2,'enc_CPSuri'/2,'enc_UserNotice'/2,'enc_NoticeReference'/2,'enc_DisplayText'/2,'enc_PolicyMappings'/2,'enc_SubjectAltName'/2,'enc_GeneralNames'/2,'enc_GeneralName'/2,'enc_AnotherName'/2,'enc_EDIPartyName'/2,'enc_IssuerAltName'/2,'enc_SubjectDirectoryAttributes'/2,'enc_BasicConstraints'/2,'enc_NameConstraints'/2,'enc_GeneralSubtrees'/2,'enc_GeneralSubtree'/2,'enc_BaseDistance'/2,'enc_PolicyConstraints'/2,'enc_SkipCerts'/2,'enc_CRLDistributionPoints'/2,'enc_DistributionPoint'/2,'enc_DistributionPointName'/2,'enc_ReasonFlags'/2,'enc_ExtKeyUsageSyntax'/2,'enc_KeyPurposeId'/2,'enc_InhibitAnyPolicy'/2,'enc_FreshestCRL'/2,'enc_AuthorityInfoAccessSyntax'/2,'enc_AccessDescription'/2,'enc_SubjectInfoAccessSyntax'/2,'enc_CRLNumber'/2,'enc_IssuingDistributionPoint'/2,'enc_BaseCRLNumber'/2,'enc_CRLReason'/2,'enc_CertificateIssuer'/2,'enc_HoldInstructionCode'/2,'enc_InvalidityDate'/2]).-export(['dec_AuthorityKeyIdentifier'/2,'dec_KeyIdentifier'/2,'dec_SubjectKeyIdentifier'/2,'dec_KeyUsage'/2,'dec_PrivateKeyUsagePeriod'/2,'dec_CertificatePolicies'/2,'dec_PolicyInformation'/2,'dec_CertPolicyId'/2,'dec_PolicyQualifierInfo'/2,'dec_PolicyQualifierId'/2,'dec_CPSuri'/2,'dec_UserNotice'/2,'dec_NoticeReference'/2,'dec_DisplayText'/2,'dec_PolicyMappings'/2,'dec_SubjectAltName'/2,'dec_GeneralNames'/2,'dec_GeneralName'/2,'dec_AnotherName'/2,'dec_EDIPartyName'/2,'dec_IssuerAltName'/2,'dec_SubjectDirectoryAttributes'/2,'dec_BasicConstraints'/2,'dec_NameConstraints'/2,'dec_GeneralSubtrees'/2,'dec_GeneralSubtree'/2,'dec_BaseDistance'/2,'dec_PolicyConstraints'/2,'dec_SkipCerts'/2,'dec_CRLDistributionPoints'/2,'dec_DistributionPoint'/2,'dec_DistributionPointName'/2,'dec_ReasonFlags'/2,'dec_ExtKeyUsageSyntax'/2,'dec_KeyPurposeId'/2,'dec_InhibitAnyPolicy'/2,'dec_FreshestCRL'/2,'dec_AuthorityInfoAccessSyntax'/2,'dec_AccessDescription'/2,'dec_SubjectInfoAccessSyntax'/2,'dec_CRLNumber'/2,'dec_IssuingDistributionPoint'/2,'dec_BaseCRLNumber'/2,'dec_CRLReason'/2,'dec_CertificateIssuer'/2,'dec_HoldInstructionCode'/2,'dec_InvalidityDate'/2]).-export(['id-ce'/0,'id-ce-authorityKeyIdentifier'/0,'id-ce-subjectKeyIdentifier'/0,'id-ce-keyUsage'/0,'id-ce-privateKeyUsagePeriod'/0,'id-ce-certificatePolicies'/0,'anyPolicy'/0,'id-ce-policyMappings'/0,'id-ce-subjectAltName'/0,'id-ce-issuerAltName'/0,'id-ce-subjectDirectoryAttributes'/0,'id-ce-basicConstraints'/0,'id-ce-nameConstraints'/0,'id-ce-policyConstraints'/0,'id-ce-cRLDistributionPoints'/0,'id-ce-extKeyUsage'/0,'anyExtendedKeyUsage'/0,'id-kp-serverAuth'/0,'id-kp-clientAuth'/0,'id-kp-codeSigning'/0,'id-kp-emailProtection'/0,'id-kp-timeStamping'/0,'id-kp-OCSPSigning'/0,'id-ce-inhibitAnyPolicy'/0,'id-ce-freshestCRL'/0,'id-pe-authorityInfoAccess'/0,'id-pe-subjectInfoAccess'/0,'id-ce-cRLNumber'/0,'id-ce-issuingDistributionPoint'/0,'id-ce-deltaCRLIndicator'/0,'id-ce-cRLReasons'/0,'id-ce-certificateIssuer'/0,'id-ce-holdInstructionCode'/0,'holdInstruction'/0,'id-holdinstruction-none'/0,'id-holdinstruction-callissuer'/0,'id-holdinstruction-reject'/0,'id-ce-invalidityDate'/0]).-export([info/0]).-export([encode/2,decode/2,encode_disp/2,decode_disp/2]).encoding_rule() -> ber_bin_v2.encode(Type,Data) ->case catch encode_disp(Type,Data) of {'EXIT',{error,Reason}} -> {error,Reason}; {'EXIT',Reason} -> {error,{asn1,Reason}}; {Bytes,_Len} -> {ok,Bytes}; Bytes -> {ok,Bytes}end.decode(Type,Data) ->case catch decode_disp(Type,element(1,?RT_BER:decode(Data))) of {'EXIT',{error,Reason}} -> {error,Reason}; {'EXIT',Reason} -> {error,{asn1,Reason}}; Result -> {ok,Result}end.encode_disp('AuthorityKeyIdentifier',Data) -> 'enc_AuthorityKeyIdentifier'(Data);encode_disp('KeyIdentifier',Data) -> 'enc_KeyIdentifier'(Data);encode_disp('SubjectKeyIdentifier',Data) -> 'enc_SubjectKeyIdentifier'(Data);encode_disp('KeyUsage',Data) -> 'enc_KeyUsage'(Data);encode_disp('PrivateKeyUsagePeriod',Data) -> 'enc_PrivateKeyUsagePeriod'(Data);encode_disp('CertificatePolicies',Data) -> 'enc_CertificatePolicies'(Data);encode_disp('PolicyInformation',Data) -> 'enc_PolicyInformation'(Data);encode_disp('CertPolicyId',Data) -> 'enc_CertPolicyId'(Data);encode_disp('PolicyQualifierInfo',Data) -> 'enc_PolicyQualifierInfo'(Data);encode_disp('PolicyQualifierId',Data) -> 'enc_PolicyQualifierId'(Data);encode_disp('CPSuri',Data) -> 'enc_CPSuri'(Data);encode_disp('UserNotice',Data) -> 'enc_UserNotice'(Data);encode_disp('NoticeReference',Data) -> 'enc_NoticeReference'(Data);encode_disp('DisplayText',Data) -> 'enc_DisplayText'(Data);encode_disp('PolicyMappings',Data) -> 'enc_PolicyMappings'(Data);encode_disp('SubjectAltName',Data) -> 'enc_SubjectAltName'(Data);encode_disp('GeneralNames',Data) -> 'enc_GeneralNames'(Data);encode_disp('GeneralName',Data) -> 'enc_GeneralName'(Data);encode_disp('AnotherName',Data) -> 'enc_AnotherName'(Data);encode_disp('EDIPartyName',Data) -> 'enc_EDIPartyName'(Data);encode_disp('IssuerAltName',Data) -> 'enc_IssuerAltName'(Data);encode_disp('SubjectDirectoryAttributes',Data) -> 'enc_SubjectDirectoryAttributes'(Data);encode_disp('BasicConstraints',Data) -> 'enc_BasicConstraints'(Data);encode_disp('NameConstraints',Data) -> 'enc_NameConstraints'(Data);encode_disp('GeneralSubtrees',Data) -> 'enc_GeneralSubtrees'(Data);encode_disp('GeneralSubtree',Data) -> 'enc_GeneralSubtree'(Data);encode_disp('BaseDistance',Data) -> 'enc_BaseDistance'(Data);encode_disp('PolicyConstraints',Data) -> 'enc_PolicyConstraints'(Data);encode_disp('SkipCerts',Data) -> 'enc_SkipCerts'(Data);encode_disp('CRLDistributionPoints',Data) -> 'enc_CRLDistributionPoints'(Data);encode_disp('DistributionPoint',Data) -> 'enc_DistributionPoint'(Data);encode_disp('DistributionPointName',Data) -> 'enc_DistributionPointName'(Data);encode_disp('ReasonFlags',Data) -> 'enc_ReasonFlags'(Data);encode_disp('ExtKeyUsageSyntax',Data) -> 'enc_ExtKeyUsageSyntax'(Data);encode_disp('KeyPurposeId',Data) -> 'enc_KeyPurposeId'(Data);encode_disp('InhibitAnyPolicy',Data) -> 'enc_InhibitAnyPolicy'(Data);encode_disp('FreshestCRL',Data) -> 'enc_FreshestCRL'(Data);encode_disp('AuthorityInfoAccessSyntax',Data) -> 'enc_AuthorityInfoAccessSyntax'(Data);encode_disp('AccessDescription',Data) -> 'enc_AccessDescription'(Data);encode_disp('SubjectInfoAccessSyntax',Data) -> 'enc_SubjectInfoAccessSyntax'(Data);encode_disp('CRLNumber',Data) -> 'enc_CRLNumber'(Data);encode_disp('IssuingDistributionPoint',Data) -> 'enc_IssuingDistributionPoint'(Data);encode_disp('BaseCRLNumber',Data) -> 'enc_BaseCRLNumber'(Data);encode_disp('CRLReason',Data) -> 'enc_CRLReason'(Data);encode_disp('CertificateIssuer',Data) -> 'enc_CertificateIssuer'(Data);encode_disp('HoldInstructionCode',Data) -> 'enc_HoldInstructionCode'(Data);encode_disp('InvalidityDate',Data) -> 'enc_InvalidityDate'(Data);encode_disp(Type,_Data) -> exit({error,{asn1,{undefined_type,Type}}}).decode_disp('AuthorityKeyIdentifier',Data) -> 'dec_AuthorityKeyIdentifier'(Data);decode_disp('KeyIdentifier',Data) -> 'dec_KeyIdentifier'(Data);decode_disp('SubjectKeyIdentifier',Data) -> 'dec_SubjectKeyIdentifier'(Data);decode_disp('KeyUsage',Data) -> 'dec_KeyUsage'(Data);decode_disp('PrivateKeyUsagePeriod',Data) -> 'dec_PrivateKeyUsagePeriod'(Data);decode_disp('CertificatePolicies',Data) -> 'dec_CertificatePolicies'(Data);decode_disp('PolicyInformation',Data) -> 'dec_PolicyInformation'(Data);decode_disp('CertPolicyId',Data) -> 'dec_CertPolicyId'(Data);decode_disp('PolicyQualifierInfo',Data) -> 'dec_PolicyQualifierInfo'(Data);decode_disp('PolicyQualifierId',Data) -> 'dec_PolicyQualifierId'(Data);decode_disp('CPSuri',Data) -> 'dec_CPSuri'(Data);decode_disp('UserNotice',Data) -> 'dec_UserNotice'(Data);decode_disp('NoticeReference',Data) -> 'dec_NoticeReference'(Data);decode_disp('DisplayText',Data) -> 'dec_DisplayText'(Data);decode_disp('PolicyMappings',Data) -> 'dec_PolicyMappings'(Data);decode_disp('SubjectAltName',Data) -> 'dec_SubjectAltName'(Data);decode_disp('GeneralNames',Data) -> 'dec_GeneralNames'(Data);decode_disp('GeneralName',Data) -> 'dec_GeneralName'(Data);decode_disp('AnotherName',Data) -> 'dec_AnotherName'(Data);decode_disp('EDIPartyName',Data) -> 'dec_EDIPartyName'(Data);decode_disp('IssuerAltName',Data) -> 'dec_IssuerAltName'(Data);decode_disp('SubjectDirectoryAttributes',Data) -> 'dec_SubjectDirectoryAttributes'(Data);decode_disp('BasicConstraints',Data) -> 'dec_BasicConstraints'(Data);decode_disp('NameConstraints',Data) -> 'dec_NameConstraints'(Data);decode_disp('GeneralSubtrees',Data) -> 'dec_GeneralSubtrees'(Data);decode_disp('GeneralSubtree',Data) -> 'dec_GeneralSubtree'(Data);decode_disp('BaseDistance',Data) -> 'dec_BaseDistance'(Data);decode_disp('PolicyConstraints',Data) -> 'dec_PolicyConstraints'(Data);decode_disp('SkipCerts',Data) -> 'dec_SkipCerts'(Data);decode_disp('CRLDistributionPoints',Data) -> 'dec_CRLDistributionPoints'(Data);decode_disp('DistributionPoint',Data) -> 'dec_DistributionPoint'(Data);decode_disp('DistributionPointName',Data) -> 'dec_DistributionPointName'(Data);decode_disp('ReasonFlags',Data) -> 'dec_ReasonFlags'(Data);decode_disp('ExtKeyUsageSyntax',Data) -> 'dec_ExtKeyUsageSyntax'(Data);decode_disp('KeyPurposeId',Data) -> 'dec_KeyPurposeId'(Data);decode_disp('InhibitAnyPolicy',Data) -> 'dec_InhibitAnyPolicy'(Data);decode_disp('FreshestCRL',Data) -> 'dec_FreshestCRL'(Data);decode_disp('AuthorityInfoAccessSyntax',Data) -> 'dec_AuthorityInfoAccessSyntax'(Data);decode_disp('AccessDescription',Data) -> 'dec_AccessDescription'(Data);decode_disp('SubjectInfoAccessSyntax',Data) -> 'dec_SubjectInfoAccessSyntax'(Data);decode_disp('CRLNumber',Data) -> 'dec_CRLNumber'(Data);decode_disp('IssuingDistributionPoint',Data) -> 'dec_IssuingDistributionPoint'(Data);decode_disp('BaseCRLNumber',Data) -> 'dec_BaseCRLNumber'(Data);decode_disp('CRLReason',Data) -> 'dec_CRLReason'(Data);decode_disp('CertificateIssuer',Data) -> 'dec_CertificateIssuer'(Data);decode_disp('HoldInstructionCode',Data) -> 'dec_HoldInstructionCode'(Data);decode_disp('InvalidityDate',Data) -> 'dec_InvalidityDate'(Data);decode_disp(Type,_Data) -> exit({error,{asn1,{undefined_type,Type}}}).info() -> case ?MODULE:module_info() of MI when is_list(MI) -> case lists:keysearch(attributes,1,MI) of {value,{_,Attributes}} when is_list(Attributes) -> case lists:keysearch(asn1_info,1,Attributes) of {value,{_,Info}} when is_list(Info) -> Info; _ -> [] end; _ -> [] end end.%%================================%% AuthorityKeyIdentifier%%================================'enc_AuthorityKeyIdentifier'(Val) -> 'enc_AuthorityKeyIdentifier'(Val, [<<48>>]).'enc_AuthorityKeyIdentifier'(Val, TagIn) ->{_,Cindex1, Cindex2, Cindex3} = Val,%%-------------------------------------------------%% attribute keyIdentifier(1) with type OCTET STRING OPTIONAL%%------------------------------------------------- {EncBytes1,EncLen1} = case Cindex1 of asn1_NOVALUE -> {<<>>,0}; _ -> ?RT_BER:encode_octet_string([], Cindex1, [<<128>>]) end,%%-------------------------------------------------%% attribute authorityCertIssuer(2) External PKIX1Implicit88:GeneralNames OPTIONAL%%------------------------------------------------- {EncBytes2,EncLen2} = case Cindex2 of asn1_NOVALUE -> {<<>>,0}; _ -> 'enc_GeneralNames'(Cindex2, [<<161>>]) end,%%-------------------------------------------------%% attribute authorityCertSerialNumber(3) with type INTEGER OPTIONAL%%------------------------------------------------- {EncBytes3,EncLen3} = case Cindex3 of asn1_NOVALUE -> {<<>>,0}; _ -> ?RT_BER:encode_integer([], Cindex3, [<<130>>]) end, BytesSoFar = [EncBytes1, EncBytes2, EncBytes3],LenSoFar = EncLen1 + EncLen2 + EncLen3,?RT_BER:encode_tags(TagIn, BytesSoFar, LenSoFar).'dec_AuthorityKeyIdentifier'(Tlv) -> 'dec_AuthorityKeyIdentifier'(Tlv, [16]).'dec_AuthorityKeyIdentifier'(Tlv, TagIn) -> %%------------------------------------------------- %% decode tag and length %%-------------------------------------------------Tlv1 = ?RT_BER:match_tags(Tlv,TagIn), %%-------------------------------------------------%% attribute keyIdentifier(1) with type OCTET STRING OPTIONAL%%-------------------------------------------------{Term1,Tlv2} = case Tlv1 of[{131072,V1}|TempTlv2] -> {?RT_BER:decode_octet_string(V1,[],[]), TempTlv2}; _ -> { asn1_NOVALUE, Tlv1}end,%%-------------------------------------------------%% attribute authorityCertIssuer(2) External PKIX1Implicit88:GeneralNames OPTIONAL%%-------------------------------------------------{Term2,Tlv3} = case Tlv2 of[{131073,V2}|TempTlv3] -> {'dec_GeneralNames'(V2, []), TempTlv3}; _ -> { asn1_NOVALUE, Tlv2}end,%%-------------------------------------------------%% attribute authorityCertSerialNumber(3) with type INTEGER OPTIONAL%%-------------------------------------------------{Term3,Tlv4} = case Tlv3 of[{131074,V3}|TempTlv4] -> {?RT_BER:decode_integer(V3,[],[]), TempTlv4}; _ -> { asn1_NOVALUE, Tlv3}end,case Tlv4 of[] -> true;_ -> exit({error,{asn1, {unexpected,Tlv4}}}) % extra fields not allowedend, {'AuthorityKeyIdentifier', Term1, Term2, Term3}.%%================================%% KeyIdentifier%%================================'enc_KeyIdentifier'(Val) -> 'enc_KeyIdentifier'(Val, [<<4>>]).'enc_KeyIdentifier'({'KeyIdentifier',Val}, TagIn) -> 'enc_KeyIdentifier'(Val, TagIn);'enc_KeyIdentifier'(Val, TagIn) ->?RT_BER:encode_octet_string([], Val, TagIn).'dec_KeyIdentifier'(Tlv) -> 'dec_KeyIdentifier'(Tlv, [4]).'dec_KeyIdentifier'(Tlv, TagIn) ->?RT_BER:decode_octet_string(Tlv,[],TagIn).%%================================%% SubjectKeyIdentifier%%================================'enc_SubjectKeyIdentifier'(Val) ->
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?