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 + -
显示快捷键?