From 6a69602985c9da9fc105cf4ce1cb434ae5f00f07 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sat, 15 Oct 2011 22:43:58 +0200 Subject: asn1rt_check: Fix transform_to_EXTERNAL1990 for binary input If ber_bin is used, decoded EXTERNAL types will include a binary Data_value in the {'EXTERNAL', ...} tuple. When handing such a tuple to the encoder again, we should properly encode it. To do so, we treat a binary data part just like a list data part. --- lib/asn1/src/asn1rt_check.erl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/asn1/src/asn1rt_check.erl b/lib/asn1/src/asn1rt_check.erl index d9856901b8..35b993fc71 100644 --- a/lib/asn1/src/asn1rt_check.erl +++ b/lib/asn1/src/asn1rt_check.erl @@ -311,7 +311,8 @@ transform_to_EXTERNAL1990([Data_val_desc,Data_value],Acc) when is_binary(Data_value)-> list_to_tuple(lists:reverse([{'single-ASN1-type',Data_value}, Data_val_desc|Acc])); -transform_to_EXTERNAL1990([Data_value],Acc) when is_list(Data_value)-> +transform_to_EXTERNAL1990([Data_value],Acc) + when is_list(Data_value); is_binary(Data_value) -> list_to_tuple(lists:reverse([{'octet-aligned',Data_value}|Acc])). -- cgit v1.2.3