3.2. Regras de codificação para valores


3.2.1. Booleano (primitivo)

FALSE 0 octeto zero
TRUE qualquer valor não nulo

3.2.2. Integer (primitivo)

Consiste de um ou mais octetos concatenados cujo conteúdo devera ser o complemento de dois do número binário inteiro igual ao valor inteiro. Se mais de um octeto e usado, os primeiros nove bits não deverão ser todos nulos ou todos "1".

3.2.3.String binário { primário ou composto }

primário

     octeto inicial              octetos subsequentes
  /---------------\            /--------------\  /--------------\
  \---------------/  ...       \--------------/  \--------------/
   
número de bits não usados
nos octetos subsequentes

ou

   octeto inicial        nenhum octeto subsequente, se o string 
  /--------------\       binario esta vazio
  \--------------/
   

Composto

Consiste de zero ou mais codificações completas de valores de dados,

cada qual sendo a codificação de um string de bits.

3.2.4.String de octetos { primitivo ou composto }

primitivo

zero ou mais octetos

composto

zero ou mais codificações completas de zero ou mais valores dados

3.2.5.Valor nulo primitivo

nenhum octeto e o octeto de comprimento será zero

3.2.6.Valores sequênciados (composto)

Contem codificação completa de um valor de dados para cada um dos tipos listados na definição ASN.1, na ordem em que aparecem na definição, paramentos que o tipo foi referenciado com a palavra-chave "OPTIONAL" ou a palavra-chave "DEFAULT".

Observação: não e possível transferir codificação de valores de dados posteriores na definição ASN.1 sem que os anteriores sejam conhecidos.

3.2.7.Sequência de valores (composto)

Consiste zero, um ou mais codificações completas de valores com os tipos listados na definição ASN.1. A ordem das codificações dos valores deve ser a mesma que a ordem dos valores a serem codificados ou produzidos por decodificação.

3.2.8.Conjunto de valores diferentes ou iguais (SET ou SET-OFF) composto

Consiste na codificação completa de um valor de dados de cada um dos tipos listados na definição ASN.1, na ordem escolhida pelo emissor.

3.2.9.Escolha (CHOICE)

A codificação de um valor escolhido deve ser a mesma de um valor do tipo escolhido.

3.2.10.Seleção (SELECTION)

A codificação de um valor selecionado devera ser a mesma que a codificação de um valor do tipo selecionado. A codificação pode ser primitiva ou composta, dependendo do tipo selecionado.

3.2.11.Valor rotulado

A codificação de um valor rotulado deve ser derivada da codificação completa do correspondente valor do tipo aparecendo na notação dos tipos rotulados (denominada a base da codificação).