User's Guide
Reference Manual
Release Notes
PDF
Top

ASN.1
Reference Manual
Version 1.8

Expand All
Contract All

Table of Contents

- asn1ct
  - Top of manual page
  - compile/1
  - compile/2
  - encode/3
  - decode/3
  - value/2
  - test/1
  - test/2
  - test/3
- asn1rt
  - Top of manual page
  - decode/3
  - encode/3
  - info/1
  - load_driver/0
  - unload_driver/0
  - utf8_binary_to_list/1
  - utf8_list_to_binary/1

# asn1rt

### MODULE

asn1rt

### MODULE SUMMARY

ASN.1 runtime support functions

### DESCRIPTION

This module is the interface module for the ASN.1 runtime support functions. To encode and decode ASN.1 types in runtime the functions in this module should be used.

### EXPORTS

decode(Module,Type,Bytes) -> {ok,Value}|{error,Reason}

Types:

Module = Type = atom()
Value = Reason = term()
Bytes = binary | [Int] when integer(Int), Int >= 0, Int =< 255 | binary

Decodes Type from Module from the list of bytes or binary Bytes. If the module is compiled with ber_bin or per_bin option Bytes must be a binary. Returns {ok,Value} if successful.

encode(Module,Type,Value)-> {ok,BinOrList} | {error,Reason}

Types:

Module = Type = atom()
Value = term()
BinOrList = Bytes | binary()
Bytes = [Int|binary|Bytes] when integer(Int), Int >= 0, Int =< 255
Reason = term()

Encodes Value of Type defined in the ASN.1 module Module. Returns a possibly nested list of bytes and or binaries if successful. If Module was compiled with the options per_bin and optimize the result is a binary. To get as fast execution as possible the encode function only performs rudimentary tests that the input Value is a correct instance of Type. The length of strings is for example not always checked.

info(Module) -> {ok,Info} | {error,Reason}

Types:

Module = atom()
Info = list()
Reason = term()

info/1 returns the version of the asn1 compiler that was used to compile the module. It also returns the compiler options that was used.

load_driver() -> ok | {error,Reason}

Types:

Reason = term()

This function is obsolete and will be removed in R16A

unload_driver() -> ok | {error,Reason}

Types:

Reason = term()

This function is obsolete and will be removed in R16A

utf8_binary_to_list(UTF8Binary) -> {ok,UnicodeList} | {error,Reason}

Types:

UTF8Binary = binary()
UnicodeList = [integer()]
Reason = term()

utf8_binary_to_list/1 Transforms a UTF8 encoded binary to a list of integers, where each integer represents one character as its unicode value. The function fails if the binary is not a properly encoded UTF8 string.

utf8_list_to_binary(UnicodeList) -> {ok,UTF8Binary} | {error,Reason}

Types:

UnicodeList = [integer()]
UTF8Binary = binary()
Reason = term()

utf8_list_to_binary/1 Transforms a list of integers, where each integer represents one character as its unicode value, to a UTF8 encoded binary.