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

📄 ssl-pkix.erl

📁 OTP是开放电信平台的简称
💻 ERL
📖 第 1 页 / 共 5 页
字号:
  Tmpterm1 = ?RT_BER:decode_open_type(V2,[131073]),DecObjextensionAttributeTypeTerm1 =   'getdec_SupportedExtensionAttributes'(id, Term1),Term2 =    case (catch DecObjextensionAttributeTypeTerm1('Type', Tmpterm1, [])) of      {'EXIT', Reason1} ->         exit({'Type not compatible with table constraint',Reason1});      Tmpterm2 ->         Tmpterm2   end,case Tlv3 of[] -> true;_ -> exit({error,{asn1, {unexpected,Tlv3}}}) % extra fields not allowedend,   {'ExtensionAttribute', Term1, Term2}.%%================================%%  Extensions%%================================'enc_Extensions'(Val) ->    'enc_Extensions'(Val, [<<48>>]).'enc_Extensions'({'Extensions',Val}, TagIn) ->   'enc_Extensions'(Val, TagIn);'enc_Extensions'(Val, TagIn) ->   {EncBytes,EncLen} = 'enc_Extensions_components'(Val,[],0),   ?RT_BER:encode_tags(TagIn, EncBytes, EncLen).'enc_Extensions_components'([], AccBytes, AccLen) ->    {lists:reverse(AccBytes),AccLen};'enc_Extensions_components'([H|T],AccBytes, AccLen) ->   {EncBytes,EncLen} = 'enc_Extension'(H, [<<48>>]),   'enc_Extensions_components'(T,[EncBytes|AccBytes], AccLen + EncLen).'dec_Extensions'(Tlv) ->   'dec_Extensions'(Tlv, [16]).'dec_Extensions'(Tlv, TagIn) ->   %%-------------------------------------------------   %% decode tag and length    %%-------------------------------------------------Tlv1 = ?RT_BER:match_tags(Tlv,TagIn), ['dec_Extension'(V1, [16]) || V1 <- Tlv1].%%================================%%  Extension%%================================'enc_Extension'(Val) ->    'enc_Extension'(Val, [<<48>>]).'enc_Extension'(Val, TagIn) ->{_,Cindex1, Cindex2, Cindex3} = Val,ObjextnID =    'getenc_SupportedExtensions'(id,                                    Cindex1),%%-------------------------------------------------%% attribute extnID(1) with type fixedtypevaluefieldidtypetagUNIVERSAL6IMPLICIT0OBJECT IDENTIFIERno%%-------------------------------------------------   {EncBytes1,EncLen1} = ?RT_BER:encode_object_identifier(Cindex1, [<<6>>]),%%-------------------------------------------------%% attribute critical(2) with type BOOLEAN DEFAULT = false%%-------------------------------------------------   {EncBytes2,EncLen2} =  case catch asn1rt_check:check_bool(false, Cindex2) of            true -> {[],0};         _ ->            ?RT_BER:encode_boolean(Cindex2, [<<1>>])       end,%%-------------------------------------------------%% attribute extnValue(3) with type typefieldType%%-------------------------------------------------   {TmpBytes1,_} = ObjextnID('Type', Cindex3, []),   {EncBytes3,EncLen3} = ?RT_BER:encode_open_type(TmpBytes1,[]),   BytesSoFar = [EncBytes1, EncBytes2, EncBytes3],LenSoFar = EncLen1 + EncLen2 + EncLen3,?RT_BER:encode_tags(TagIn, BytesSoFar, LenSoFar).'dec_Extension'(Tlv) ->   'dec_Extension'(Tlv, [16]).'dec_Extension'(Tlv, TagIn) ->   %%-------------------------------------------------   %% decode tag and length    %%-------------------------------------------------Tlv1 = ?RT_BER:match_tags(Tlv,TagIn), %%-------------------------------------------------%% attribute extnID(1) with type fixedtypevaluefieldidtypetagUNIVERSAL6IMPLICIT0OBJECT IDENTIFIERno%%-------------------------------------------------[V1|Tlv2] = Tlv1, Term1 = ?RT_BER:decode_object_identifier(V1,[6]),%%-------------------------------------------------%% attribute critical(2) with type BOOLEAN DEFAULT = false%%-------------------------------------------------{Term2,Tlv3} = case Tlv2 of[{1,V2}|TempTlv3] ->    {?RT_BER:decode_boolean(V2,[]), TempTlv3};    _ ->        {false,Tlv2}end,%%-------------------------------------------------%% attribute extnValue(3) with type typefieldType%%-------------------------------------------------[V3|Tlv4] = Tlv3,   Tmpterm1 = ?RT_BER:decode_open_type(V3,[]),DecObjextnIDTerm1 =   'getdec_SupportedExtensions'(id, Term1),Term3 =    case (catch DecObjextnIDTerm1('Type', Tmpterm1, [])) of      {'EXIT', Reason1} ->         exit({'Type not compatible with table constraint',Reason1});      Tmpterm2 ->         Tmpterm2   end,case Tlv4 of[] -> true;_ -> exit({error,{asn1, {unexpected,Tlv4}}}) % extra fields not allowedend,   {'Extension', Term1, Term2, Term3}.%%================================%%  ObjId%%================================'enc_ObjId'(Val) ->    'enc_ObjId'(Val, [<<6>>]).'enc_ObjId'({'ObjId',Val}, TagIn) ->   'enc_ObjId'(Val, TagIn);'enc_ObjId'(Val, TagIn) ->?RT_BER:encode_object_identifier(Val, TagIn).'dec_ObjId'(Tlv) ->   'dec_ObjId'(Tlv, [6]).'dec_ObjId'(Tlv, TagIn) ->?RT_BER:decode_object_identifier(Tlv,TagIn).%%================================%%  Boolean%%================================'enc_Boolean'(Val) ->    'enc_Boolean'(Val, [<<1>>]).'enc_Boolean'({'Boolean',Val}, TagIn) ->   'enc_Boolean'(Val, TagIn);'enc_Boolean'(Val, TagIn) ->?RT_BER:encode_boolean(Val, TagIn).'dec_Boolean'(Tlv) ->   'dec_Boolean'(Tlv, [1]).'dec_Boolean'(Tlv, TagIn) ->?RT_BER:decode_boolean(Tlv,TagIn).%%================================%%  Any%%================================'enc_Any'(Val) ->    'enc_Any'(Val, []).'enc_Any'({'Any',Val}, TagIn) ->   'enc_Any'(Val, TagIn);'enc_Any'(Val, TagIn) ->%% OPEN TYPE?RT_BER:encode_open_type(Val, TagIn).'dec_Any'(Tlv) ->   'dec_Any'(Tlv, []).'dec_Any'(Tlv, TagIn) ->?RT_BER:decode_open_type_as_binary(Tlv,TagIn).%%================================%%  Extension-Any%%================================'enc_Extension-Any'(Val) ->    'enc_Extension-Any'(Val, [<<48>>]).'enc_Extension-Any'(Val, TagIn) ->{_,Cindex1, Cindex2, Cindex3} = Val,%%-------------------------------------------------%% attribute extnID(1) with type OBJECT IDENTIFIER%%-------------------------------------------------   {EncBytes1,EncLen1} = ?RT_BER:encode_object_identifier(Cindex1, [<<6>>]),%%-------------------------------------------------%% attribute critical(2) with type BOOLEAN DEFAULT = false%%-------------------------------------------------   {EncBytes2,EncLen2} =  case catch asn1rt_check:check_bool(false, Cindex2) of            true -> {[],0};         _ ->            ?RT_BER:encode_boolean(Cindex2, [<<1>>])       end,%%-------------------------------------------------%% attribute extnValue(3) with type ASN1_OPEN_TYPE%%-------------------------------------------------   {EncBytes3,EncLen3} = ?RT_BER:encode_open_type(Cindex3, []),   BytesSoFar = [EncBytes1, EncBytes2, EncBytes3],LenSoFar = EncLen1 + EncLen2 + EncLen3,?RT_BER:encode_tags(TagIn, BytesSoFar, LenSoFar).'dec_Extension-Any'(Tlv) ->   'dec_Extension-Any'(Tlv, [16]).'dec_Extension-Any'(Tlv, TagIn) ->   %%-------------------------------------------------   %% decode tag and length    %%-------------------------------------------------Tlv1 = ?RT_BER:match_tags(Tlv,TagIn), %%-------------------------------------------------%% attribute extnID(1) with type OBJECT IDENTIFIER%%-------------------------------------------------[V1|Tlv2] = Tlv1, Term1 = ?RT_BER:decode_object_identifier(V1,[6]),%%-------------------------------------------------%% attribute critical(2) with type BOOLEAN DEFAULT = false%%-------------------------------------------------{Term2,Tlv3} = case Tlv2 of[{1,V2}|TempTlv3] ->    {?RT_BER:decode_boolean(V2,[]), TempTlv3};    _ ->        {false,Tlv2}end,%%-------------------------------------------------%% attribute extnValue(3) with type ASN1_OPEN_TYPE%%-------------------------------------------------[V3|Tlv4] = Tlv3, Term3 = ?RT_BER:decode_open_type_as_binary(V3,[]),case Tlv4 of[] -> true;_ -> exit({error,{asn1, {unexpected,Tlv4}}}) % extra fields not allowedend,   {'Extension-Any', Term1, Term2, Term3}.%%================================%%  name%%================================'enc_name'('Type', Val, _RestPrimFieldName) ->   'PKIX1Explicit88':'enc_X520name'(Val, []).'dec_name'('Type', Bytes,_) ->  Tlv = tlv_format(Bytes),   'PKIX1Explicit88':'dec_X520name'(Tlv, []).tlv_format(Bytes) when binary(Bytes) ->  {Tlv,_}=?RT_BER:decode(Bytes),  Tlv;tlv_format(Bytes) ->  Bytes.%%================================%%  surname%%================================'enc_surname'('Type', Val, _RestPrimFieldName) ->   'PKIX1Explicit88':'enc_X520name'(Val, []).'dec_surname'('Type', Bytes,_) ->  Tlv = tlv_format(Bytes),   'PKIX1Explicit88':'dec_X520name'(Tlv, []).%%================================%%  givenName%%================================'enc_givenName'('Type', Val, _RestPrimFieldName) ->   'PKIX1Explicit88':'enc_X520name'(Val, []).'dec_givenName'('Type', Bytes,_) ->  Tlv = tlv_format(Bytes),   'PKIX1Explicit88':'dec_X520name'(Tlv, []).%%================================%%  initials%%================================'enc_initials'('Type', Val, _RestPrimFieldName) ->   'PKIX1Explicit88':'enc_X520name'(Val, []).'dec_initials'('Type', Bytes,_) ->  Tlv = tlv_format(Bytes),   'PKIX1Explicit88':'dec_X520name'(Tlv, []).%%================================%%  generationQualifier%%================================'enc_generationQualifier'('Type', Val, _RestPrimFieldName) ->   'PKIX1Explicit88':'enc_X520name'(Val, []).'dec_generationQualifier'('Type', Bytes,_) ->  Tlv = tlv_format(Bytes),   'PKIX1Explicit88':'dec_X520name'(Tlv, []).%%================================%%  commonName%%================================'enc_commonName'('Type', Val, _RestPrimFieldName) ->   'PKIX1Explicit88':'enc_X520CommonName'(Val, []).'dec_commonName'('Type', Bytes,_) ->  Tlv = tlv_format(Bytes),   'PKIX1Explicit88':'dec_X520CommonName'(Tlv, []).%%================================%%  localityName%%================================'enc_localityName'('Type', Val, _RestPrimFieldName) ->   'PKIX1Explicit88':'enc_X520LocalityName'(Val, []).'dec_localityName'('Type', Bytes,_) ->  Tlv = tlv_format(Bytes),   'PKIX1Explicit88':'dec_X520LocalityName'(Tlv, []).%%================================%%  stateOrProvinceName%%================================'enc_stateOrProvinceName'('Type', Val, _RestPrimFieldName) ->   'PKIX1Explicit88':'enc_X520StateOrProvinceName'(Val, []).'dec_stateOrProvinceName'('Type', Bytes,_) ->  Tlv = tlv_format(Bytes),   'PKIX1Explicit88':'dec_X520StateOrProvinceName'(Tlv, []).%%================================%%  organizationName%%================================'enc_organizationName'('Type', Val, _RestPrimFieldName) ->   'PKIX1Explicit88':'enc_X520OrganizationName'(Val, []).'dec_organizationName'('Type', Bytes,_) ->  Tlv = tlv_format(Bytes),   'PKIX1Explicit88':'dec_X520OrganizationName'(Tlv, []).%%================================%%  organizationalUnitName%%================================'enc_organizationalUnitName'('Type', Val, _RestPrimFieldName) ->   'PKIX1Explicit88':'enc_X520OrganizationalUnitName'(Val, []).'dec_organizationalUnitName'('Type', Bytes,_) ->  Tlv = tlv_format(Bytes),   'PKIX1Explicit88':'dec_X520OrganizationalUnitName'(Tlv, []).%%================================%%  title%%================================'enc_title'('Type', Val, _RestPrimFieldName) ->   'PKIX1Explicit88':'enc_X520Title'(Val, []).

⌨️ 快捷键说明

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