der: add new enum element for context-specific encodings
This commit is contained in:
		
							parent
							
								
									f0a1235614
								
							
						
					
					
						commit
						2d8933e4f1
					
				@ -462,6 +462,7 @@ typedef enum ltc_asn1_type_ {
 | 
			
		||||
 LTC_ASN1_RAW_BIT_STRING,
 | 
			
		||||
 LTC_ASN1_TELETEX_STRING,
 | 
			
		||||
 LTC_ASN1_CONSTRUCTED,
 | 
			
		||||
 LTC_ASN1_CONTEXT_SPECIFIC,
 | 
			
		||||
} ltc_asn1_type;
 | 
			
		||||
 | 
			
		||||
/** A LTC ASN.1 list type */
 | 
			
		||||
 | 
			
		||||
@ -200,6 +200,7 @@ int der_decode_choice(const unsigned char *in,   unsigned long *inlen,
 | 
			
		||||
 | 
			
		||||
           case LTC_ASN1_CHOICE:
 | 
			
		||||
           case LTC_ASN1_CONSTRUCTED:
 | 
			
		||||
           case LTC_ASN1_CONTEXT_SPECIFIC:
 | 
			
		||||
           case LTC_ASN1_EOL:
 | 
			
		||||
               return CRYPT_INVALID_ARG;
 | 
			
		||||
       }
 | 
			
		||||
 | 
			
		||||
@ -284,6 +284,7 @@ int der_decode_sequence_ex(const unsigned char *in, unsigned long  inlen,
 | 
			
		||||
               break;
 | 
			
		||||
 | 
			
		||||
           case LTC_ASN1_CONSTRUCTED:
 | 
			
		||||
           case LTC_ASN1_CONTEXT_SPECIFIC:
 | 
			
		||||
           case LTC_ASN1_EOL:
 | 
			
		||||
               err = CRYPT_INVALID_ARG;
 | 
			
		||||
               goto LBL_ERR;
 | 
			
		||||
 | 
			
		||||
@ -72,6 +72,7 @@ int der_decode_sequence_multi(const unsigned char *in, unsigned long inlen, ...)
 | 
			
		||||
 | 
			
		||||
           case LTC_ASN1_EOL:
 | 
			
		||||
           case LTC_ASN1_CONSTRUCTED:
 | 
			
		||||
           case LTC_ASN1_CONTEXT_SPECIFIC:
 | 
			
		||||
               va_end(args);
 | 
			
		||||
               return CRYPT_INVALID_ARG;
 | 
			
		||||
       }
 | 
			
		||||
@ -122,6 +123,7 @@ int der_decode_sequence_multi(const unsigned char *in, unsigned long inlen, ...)
 | 
			
		||||
                break;
 | 
			
		||||
           case LTC_ASN1_EOL:
 | 
			
		||||
           case LTC_ASN1_CONSTRUCTED:
 | 
			
		||||
           case LTC_ASN1_CONTEXT_SPECIFIC:
 | 
			
		||||
                break;
 | 
			
		||||
       }
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
@ -138,6 +138,7 @@ int der_encode_sequence_ex(ltc_asn1_list *list, unsigned long inlen,
 | 
			
		||||
 | 
			
		||||
           case LTC_ASN1_CHOICE:
 | 
			
		||||
           case LTC_ASN1_CONSTRUCTED:
 | 
			
		||||
           case LTC_ASN1_CONTEXT_SPECIFIC:
 | 
			
		||||
           case LTC_ASN1_EOL:
 | 
			
		||||
           case LTC_ASN1_TELETEX_STRING:
 | 
			
		||||
               err = CRYPT_INVALID_ARG;
 | 
			
		||||
@ -336,6 +337,7 @@ int der_encode_sequence_ex(ltc_asn1_list *list, unsigned long inlen,
 | 
			
		||||
 | 
			
		||||
           case LTC_ASN1_CHOICE:
 | 
			
		||||
           case LTC_ASN1_CONSTRUCTED:
 | 
			
		||||
           case LTC_ASN1_CONTEXT_SPECIFIC:
 | 
			
		||||
           case LTC_ASN1_EOL:
 | 
			
		||||
           case LTC_ASN1_TELETEX_STRING:
 | 
			
		||||
               err = CRYPT_INVALID_ARG;
 | 
			
		||||
 | 
			
		||||
@ -71,6 +71,7 @@ int der_encode_sequence_multi(unsigned char *out, unsigned long *outlen, ...)
 | 
			
		||||
 | 
			
		||||
           case LTC_ASN1_CHOICE:
 | 
			
		||||
           case LTC_ASN1_CONSTRUCTED:
 | 
			
		||||
           case LTC_ASN1_CONTEXT_SPECIFIC:
 | 
			
		||||
           case LTC_ASN1_EOL:
 | 
			
		||||
           case LTC_ASN1_TELETEX_STRING:
 | 
			
		||||
               va_end(args);
 | 
			
		||||
@ -122,6 +123,7 @@ int der_encode_sequence_multi(unsigned char *out, unsigned long *outlen, ...)
 | 
			
		||||
 | 
			
		||||
           case LTC_ASN1_CHOICE:
 | 
			
		||||
           case LTC_ASN1_CONSTRUCTED:
 | 
			
		||||
           case LTC_ASN1_CONTEXT_SPECIFIC:
 | 
			
		||||
           case LTC_ASN1_EOL:
 | 
			
		||||
           case LTC_ASN1_TELETEX_STRING:
 | 
			
		||||
               va_end(args);
 | 
			
		||||
 | 
			
		||||
@ -141,6 +141,7 @@ int der_length_sequence(ltc_asn1_list *list, unsigned long inlen,
 | 
			
		||||
 | 
			
		||||
           case LTC_ASN1_CHOICE:
 | 
			
		||||
           case LTC_ASN1_CONSTRUCTED:
 | 
			
		||||
           case LTC_ASN1_CONTEXT_SPECIFIC:
 | 
			
		||||
           case LTC_ASN1_EOL:
 | 
			
		||||
               err = CRYPT_INVALID_ARG;
 | 
			
		||||
               goto LBL_ERR;
 | 
			
		||||
 | 
			
		||||
@ -39,6 +39,7 @@ static int ltc_to_asn1(ltc_asn1_type v)
 | 
			
		||||
      case LTC_ASN1_SETOF:                   return 0x31;
 | 
			
		||||
      case LTC_ASN1_CHOICE:
 | 
			
		||||
      case LTC_ASN1_CONSTRUCTED:
 | 
			
		||||
      case LTC_ASN1_CONTEXT_SPECIFIC:
 | 
			
		||||
      case LTC_ASN1_EOL:                     return -1;
 | 
			
		||||
   }
 | 
			
		||||
   return -1;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user