735
735
exit({error,{asn1,{encode_length,{nyi,above_16k}}}})
738
encode_length({0,'MAX'},Len) ->
738
encode_length({Lb,'MAX'},Len) when integer(Lb),Lb=<Len->
739
% encode_semi_constrained_number(Lb,Len);
739
740
encode_length(undefined,Len);
740
741
encode_length({Lb,Ub},Len) when Ub =< 65535 ,Lb >= 0 -> % constrained
741
742
encode_constrained_number({Lb,Ub},Len);
779
780
decode_length(Buffer,{Lb,Ub}) when Ub =< 65535 ,Lb >= 0 -> % constrained
780
781
decode_constrained_number(Buffer,{Lb,Ub});
782
decode_length(Buffer,{Lb,_Ub}) when integer(Lb),Lb>=0 -> %Ub > 64K or 'MAX'. It will work for length < 16K
783
decode_length(Buffer,undefined);
782
785
decode_length(Buffer,{{Lb,Ub},[]}) ->
783
786
case getbit(Buffer) of
1201
1204
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1203
1206
encode_octet_string(C,{Name,Val}) when atom(Name) ->
1204
encode_octet_string(C,false,Val);
1207
encode_octet_string2(C,Val);
1205
1208
encode_octet_string(C,Val) ->
1206
encode_octet_string(C,false,Val).
1209
encode_octet_string2(C,Val).
1208
encode_octet_string(C,Bool,{_Name,Val}) ->
1209
encode_octet_string(C,Bool,Val);
1210
encode_octet_string(_,true,_) ->
1211
exit({error,{asn1,{'not_supported',extensionmarker}}});
1212
encode_octet_string(C,false,Val) ->
1211
% encode_octet_string2(C,Bool,{_Name,Val}) ->
1212
% encode_octet_string2(C,Bool,Val);
1213
encode_octet_string2(C,Val) ->
1213
1214
case get_constraint(C,'SizeConstraint') of
1287
1288
NumBits = get_NumBits(C,StringType),
1288
1289
case get_constraint(C,'SizeConstraint') of
1289
1290
Ub when integer(Ub), Ub*NumBits =< 16 ->
1290
case {StringType,Result} of
1291
{'BMPString',{octets,Ol}} ->
1292
[{bits,8,Oct}||Oct <- Ol];
1298
1294
Ub when integer(Ub),Ub =<65535 -> % fixed length