⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ssl-pkix.erl

📁 OTP是开放电信平台的简称
💻 ERL
📖 第 1 页 / 共 5 页
字号:
%% 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 SSL-PKIX-module('SSL-PKIX').-include("SSL-PKIX.hrl").-define('RT_BER',asn1rt_ber_bin_v2).-asn1_info([{vsn,'1.4.5'},            {module,'SSL-PKIX'},            {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_Certificate'/2,'enc_TBSCertificate'/2,'enc_AttributeTypeAndValue'/2,'enc_SubjectPublicKeyInfo'/2,'enc_SubjectPublicKeyInfo-Any'/2,'enc_SignatureAlgorithm'/2,'enc_SignatureAlgorithm-Any'/2,'enc_PublicKeyAlgorithm'/2,'enc_KEA-PublicKey'/2,'enc_FieldID'/2,'enc_Characteristic-two'/2,'enc_ExtensionAttributes'/2,'enc_ExtensionAttribute'/2,'enc_Extensions'/2,'enc_Extension'/2,'enc_ObjId'/2,'enc_Boolean'/2,'enc_Any'/2,'enc_Extension-Any'/2]).-export(['dec_Certificate'/2,'dec_TBSCertificate'/2,'dec_AttributeTypeAndValue'/2,'dec_SubjectPublicKeyInfo'/2,'dec_SubjectPublicKeyInfo-Any'/2,'dec_SignatureAlgorithm'/2,'dec_SignatureAlgorithm-Any'/2,'dec_PublicKeyAlgorithm'/2,'dec_KEA-PublicKey'/2,'dec_FieldID'/2,'dec_Characteristic-two'/2,'dec_ExtensionAttributes'/2,'dec_ExtensionAttribute'/2,'dec_Extensions'/2,'dec_Extension'/2,'dec_ObjId'/2,'dec_Boolean'/2,'dec_Any'/2,'dec_Extension-Any'/2]).-export(['enc_name'/3,'enc_surname'/3,'enc_givenName'/3,'enc_initials'/3,'enc_generationQualifier'/3,'enc_commonName'/3,'enc_localityName'/3,'enc_stateOrProvinceName'/3,'enc_organizationName'/3,'enc_organizationalUnitName'/3,'enc_title'/3,'enc_dnQualifier'/3,'enc_countryName'/3,'enc_serialNumber'/3,'enc_pseudonym'/3,'enc_domainComponent'/3,'enc_emailAddress'/3,'enc_dsa'/3,'enc_dsa-with-sha1'/3,'enc_md2-with-rsa-encryption'/3,'enc_md5-with-rsa-encryption'/3,'enc_sha1-with-rsa-encryption'/3,'enc_rsa-encryption'/3,'enc_dh'/3,'enc_kea'/3,'enc_ecdsa-with-sha1'/3,'enc_field-prime-field'/3,'enc_field-characteristic-two'/3,'enc_gn-basis'/3,'enc_tp-basis'/3,'enc_pp-basis'/3,'enc_ec-public-key'/3,'enc_x400-common-name'/3,'enc_x400-teletex-common-name'/3,'enc_x400-teletex-personal-name'/3,'enc_x400-pds-name'/3,'enc_x400-physical-delivery-country-name'/3,'enc_x400-postal-code'/3,'enc_x400-physical-delivery-office-name'/3,'enc_x400-physical-delivery-office-number'/3,'enc_x400-extension-OR-address-components'/3,'enc_x400-physical-delivery-personal-name'/3,'enc_x400-physical-delivery-organization-name'/3,'enc_x400-extension-physical-delivery-address-components'/3,'enc_x400-unformatted-postal-address'/3,'enc_x400-street-address'/3,'enc_x400-post-office-box-address'/3,'enc_x400-poste-restante-address'/3,'enc_x400-unique-postal-name'/3,'enc_x400-local-postal-attributes'/3,'enc_x400-extended-network-address'/3,'enc_x400-terminal-type'/3,'enc_x400-teletex-domain-defined-attributes'/3,'enc_authorityKeyIdentifier'/3,'enc_subjectKeyIdentifier'/3,'enc_keyUsage'/3,'enc_privateKeyUsagePeriod'/3,'enc_certificatePolicies'/3,'enc_policyMappings'/3,'enc_subjectAltName'/3,'enc_issuerAltName'/3,'enc_subjectDirectoryAttributes'/3,'enc_basicConstraints'/3,'enc_nameConstraints'/3,'enc_policyConstraints'/3,'enc_cRLDistributionPoints'/3,'enc_extKeyUsage'/3,'enc_inhibitAnyPolicy'/3,'enc_freshestCRL'/3,'enc_authorityInfoAccess'/3,'enc_subjectInfoAccess'/3,'enc_cRLNumber'/3,'enc_issuingDistributionPoint'/3,'enc_deltaCRLIndicator'/3,'enc_cRLReasons'/3,'enc_certificateIssuer'/3,'enc_holdInstructionCode'/3,'enc_invalidityDate'/3]).-export(['dec_name'/3,'dec_surname'/3,'dec_givenName'/3,'dec_initials'/3,'dec_generationQualifier'/3,'dec_commonName'/3,'dec_localityName'/3,'dec_stateOrProvinceName'/3,'dec_organizationName'/3,'dec_organizationalUnitName'/3,'dec_title'/3,'dec_dnQualifier'/3,'dec_countryName'/3,'dec_serialNumber'/3,'dec_pseudonym'/3,'dec_domainComponent'/3,'dec_emailAddress'/3,'dec_dsa'/3,'dec_dsa-with-sha1'/3,'dec_md2-with-rsa-encryption'/3,'dec_md5-with-rsa-encryption'/3,'dec_sha1-with-rsa-encryption'/3,'dec_rsa-encryption'/3,'dec_dh'/3,'dec_kea'/3,'dec_ecdsa-with-sha1'/3,'dec_field-prime-field'/3,'dec_field-characteristic-two'/3,'dec_gn-basis'/3,'dec_tp-basis'/3,'dec_pp-basis'/3,'dec_ec-public-key'/3,'dec_x400-common-name'/3,'dec_x400-teletex-common-name'/3,'dec_x400-teletex-personal-name'/3,'dec_x400-pds-name'/3,'dec_x400-physical-delivery-country-name'/3,'dec_x400-postal-code'/3,'dec_x400-physical-delivery-office-name'/3,'dec_x400-physical-delivery-office-number'/3,'dec_x400-extension-OR-address-components'/3,'dec_x400-physical-delivery-personal-name'/3,'dec_x400-physical-delivery-organization-name'/3,'dec_x400-extension-physical-delivery-address-components'/3,'dec_x400-unformatted-postal-address'/3,'dec_x400-street-address'/3,'dec_x400-post-office-box-address'/3,'dec_x400-poste-restante-address'/3,'dec_x400-unique-postal-name'/3,'dec_x400-local-postal-attributes'/3,'dec_x400-extended-network-address'/3,'dec_x400-terminal-type'/3,'dec_x400-teletex-domain-defined-attributes'/3,'dec_authorityKeyIdentifier'/3,'dec_subjectKeyIdentifier'/3,'dec_keyUsage'/3,'dec_privateKeyUsagePeriod'/3,'dec_certificatePolicies'/3,'dec_policyMappings'/3,'dec_subjectAltName'/3,'dec_issuerAltName'/3,'dec_subjectDirectoryAttributes'/3,'dec_basicConstraints'/3,'dec_nameConstraints'/3,'dec_policyConstraints'/3,'dec_cRLDistributionPoints'/3,'dec_extKeyUsage'/3,'dec_inhibitAnyPolicy'/3,'dec_freshestCRL'/3,'dec_authorityInfoAccess'/3,'dec_subjectInfoAccess'/3,'dec_cRLNumber'/3,'dec_issuingDistributionPoint'/3,'dec_deltaCRLIndicator'/3,'dec_cRLReasons'/3,'dec_certificateIssuer'/3,'dec_holdInstructionCode'/3,'dec_invalidityDate'/3]).-export(['getenc_SupportedAttributeTypeAndValues'/2,'getenc_SupportedSignatureAlgorithms'/2,'getenc_SupportedPublicKeyAlgorithms'/2,'getenc_SupportedFieldIds'/2,'getenc_SupportedCharacteristicTwos'/2,'getenc_SupportedExtensionAttributes'/2,'getenc_SupportedExtensions'/2]).-export(['getdec_SupportedAttributeTypeAndValues'/2,'getdec_SupportedSignatureAlgorithms'/2,'getdec_SupportedPublicKeyAlgorithms'/2,'getdec_SupportedFieldIds'/2,'getdec_SupportedCharacteristicTwos'/2,'getdec_SupportedExtensionAttributes'/2,'getdec_SupportedExtensions'/2]).-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('Certificate',Data) -> 'enc_Certificate'(Data);encode_disp('TBSCertificate',Data) -> 'enc_TBSCertificate'(Data);encode_disp('AttributeTypeAndValue',Data) -> 'enc_AttributeTypeAndValue'(Data);encode_disp('SubjectPublicKeyInfo',Data) -> 'enc_SubjectPublicKeyInfo'(Data);encode_disp('SubjectPublicKeyInfo-Any',Data) -> 'enc_SubjectPublicKeyInfo-Any'(Data);encode_disp('SignatureAlgorithm',Data) -> 'enc_SignatureAlgorithm'(Data);encode_disp('SignatureAlgorithm-Any',Data) -> 'enc_SignatureAlgorithm-Any'(Data);encode_disp('PublicKeyAlgorithm',Data) -> 'enc_PublicKeyAlgorithm'(Data);encode_disp('KEA-PublicKey',Data) -> 'enc_KEA-PublicKey'(Data);encode_disp('FieldID',Data) -> 'enc_FieldID'(Data);encode_disp('Characteristic-two',Data) -> 'enc_Characteristic-two'(Data);encode_disp('ExtensionAttributes',Data) -> 'enc_ExtensionAttributes'(Data);encode_disp('ExtensionAttribute',Data) -> 'enc_ExtensionAttribute'(Data);encode_disp('Extensions',Data) -> 'enc_Extensions'(Data);encode_disp('Extension',Data) -> 'enc_Extension'(Data);encode_disp('ObjId',Data) -> 'enc_ObjId'(Data);encode_disp('Boolean',Data) -> 'enc_Boolean'(Data);encode_disp('Any',Data) -> 'enc_Any'(Data);encode_disp('Extension-Any',Data) -> 'enc_Extension-Any'(Data);encode_disp(Type,_Data) -> exit({error,{asn1,{undefined_type,Type}}}).decode_disp('Certificate',Data) -> 'dec_Certificate'(Data);decode_disp('TBSCertificate',Data) -> 'dec_TBSCertificate'(Data);decode_disp('AttributeTypeAndValue',Data) -> 'dec_AttributeTypeAndValue'(Data);decode_disp('SubjectPublicKeyInfo',Data) -> 'dec_SubjectPublicKeyInfo'(Data);decode_disp('SubjectPublicKeyInfo-Any',Data) -> 'dec_SubjectPublicKeyInfo-Any'(Data);decode_disp('SignatureAlgorithm',Data) -> 'dec_SignatureAlgorithm'(Data);decode_disp('SignatureAlgorithm-Any',Data) -> 'dec_SignatureAlgorithm-Any'(Data);decode_disp('PublicKeyAlgorithm',Data) -> 'dec_PublicKeyAlgorithm'(Data);decode_disp('KEA-PublicKey',Data) -> 'dec_KEA-PublicKey'(Data);decode_disp('FieldID',Data) -> 'dec_FieldID'(Data);decode_disp('Characteristic-two',Data) -> 'dec_Characteristic-two'(Data);decode_disp('ExtensionAttributes',Data) -> 'dec_ExtensionAttributes'(Data);decode_disp('ExtensionAttribute',Data) -> 'dec_ExtensionAttribute'(Data);decode_disp('Extensions',Data) -> 'dec_Extensions'(Data);decode_disp('Extension',Data) -> 'dec_Extension'(Data);decode_disp('ObjId',Data) -> 'dec_ObjId'(Data);decode_disp('Boolean',Data) -> 'dec_Boolean'(Data);decode_disp('Any',Data) -> 'dec_Any'(Data);decode_disp('Extension-Any',Data) -> 'dec_Extension-Any'(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.%%================================%%  Certificate%%================================'enc_Certificate'(Val) ->    'enc_Certificate'(Val, [<<48>>]).'enc_Certificate'(Val, TagIn) ->{_,Cindex1, Cindex2, Cindex3} = Val,%%-------------------------------------------------%% attribute tbsCertificate(1)   External SSL-PKIX:TBSCertificate%%-------------------------------------------------   {EncBytes1,EncLen1} = 'enc_TBSCertificate'(Cindex1, [<<48>>]),%%-------------------------------------------------%% attribute signatureAlgorithm(2)   External SSL-PKIX:SignatureAlgorithm%%-------------------------------------------------   {EncBytes2,EncLen2} = 'enc_SignatureAlgorithm'(Cindex2, [<<48>>]),%%-------------------------------------------------%% attribute signature(3) with type BIT STRING%%-------------------------------------------------   {EncBytes3,EncLen3} = ?RT_BER:encode_bit_string([], Cindex3, [], [<<3>>]),   BytesSoFar = [EncBytes1, EncBytes2, EncBytes3],LenSoFar = EncLen1 + EncLen2 + EncLen3,?RT_BER:encode_tags(TagIn, BytesSoFar, LenSoFar).'dec_Certificate'(Tlv) ->   'dec_Certificate'(Tlv, [16]).'dec_Certificate'(Tlv, TagIn) ->   %%-------------------------------------------------   %% decode tag and length    %%-------------------------------------------------Tlv1 = ?RT_BER:match_tags(Tlv,TagIn), %%-------------------------------------------------%% attribute tbsCertificate(1)   External SSL-PKIX:TBSCertificate%%-------------------------------------------------[V1|Tlv2] = Tlv1, Term1 = 'dec_TBSCertificate'(V1, [16]),%%-------------------------------------------------%% attribute signatureAlgorithm(2)   External SSL-PKIX:SignatureAlgorithm%%-------------------------------------------------[V2|Tlv3] = Tlv2, Term2 = 'dec_SignatureAlgorithm'(V2, [16]),%%-------------------------------------------------%% attribute signature(3) with type BIT STRING%%-------------------------------------------------[V3|Tlv4] = Tlv3, Term3 = ?RT_BER:decode_compact_bit_string(V3,[],[],[3]),case Tlv4 of[] -> true;_ -> exit({error,{asn1, {unexpected,Tlv4}}}) % extra fields not allowedend,   {'Certificate', Term1, Term2, Term3}.%%================================%%  TBSCertificate%%================================'enc_TBSCertificate'(Val) ->    'enc_TBSCertificate'(Val, [<<48>>]).'enc_TBSCertificate'(Val, TagIn) ->{_,Cindex1, Cindex2, Cindex3, Cindex4, Cindex5, Cindex6, Cindex7, Cindex8, Cindex9, Cindex10} = Val,%%-------------------------------------------------%% attribute version(1) with type INTEGER DEFAULT = 0%%-------------------------------------------------   {EncBytes1,EncLen1} =  case catch asn1rt_check:check_int(0, Cindex1, [{v1,0},{v2,1},{v3,2}]) of            true -> {[],0};         _ ->            ?RT_BER:encode_integer([], Cindex1, [{v1,0},{v2,1},{v3,2}], [<<2>>,<<160>>])       end,%%-------------------------------------------------%% attribute serialNumber(2) with type INTEGER%%-------------------------------------------------   {EncBytes2,EncLen2} = ?RT_BER:encode_integer([], Cindex2, [<<2>>]),%%-------------------------------------------------%% attribute signature(3)   External SSL-PKIX:SignatureAlgorithm%%-------------------------------------------------   {EncBytes3,EncLen3} = 'enc_SignatureAlgorithm'(Cindex3, [<<48>>]),%%-------------------------------------------------%% attribute issuer(4)   External PKIX1Explicit88:Name%%-------------------------------------------------   {EncBytes4,EncLen4} = 'PKIX1Explicit88':'enc_Name'(Cindex4, []),%%-------------------------------------------------%% attribute validity(5)   External PKIX1Explicit88:Validity%%-------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -