fact: Fixpoint ASN1_Format_Simple_DER (desc : ASN1_Simple) : ASN1_Simple_denote desc -> CacheFormat -> Comp (B * CacheFormat) := match desc return ASN1_Simple_denote desc -> CacheFormat -> Comp (B * CacheFormat) with | ASN_Boolean => fun data => ASN1_Format_Tag ``"Universal" false 1 ThenC ASN1_Format_Definite_Length 1 ThenC format_word (if data then natToWord 8 255 else natToWord 8 0) DoneC | ASN_Null => fun data => ASN1_Format_Tag ``"Universal" false 5 ThenC ASN1_Format_Definite_Length 0 DoneC | ASN_Integer => fun data => format_word (natToWord 1 10) | ASN_Enum n => fun data => format_word (natToWord 1 10) | ASN_BitString => fun data => format_word (natToWord 1 10) | ASN_OctetString => fun data => format_word (natToWord 1 10) | ASN_NumericString => fun data => format_word (natToWord 1 10) | ASN_PrintableString => fun data => format_word (natToWord 1 10) | ASN_IA5String => fun data => ASN1_Format_Tag ``"Universal" false 22 ThenC ASN1_Format_Definite_Length (String.length data) ThenC format_string data DoneC end.
imports: Fiat.Common.Coq__8_4__8_5__Compat Coq.Lists.List Coq.Strings.Ascii Coq.Strings.String Coq.Numbers.BinNums Fiat.Common Fiat.Computation.Notations Fiat.Narcissus.Common.Specs Fiat.Narcissus.Common.WordFacts Bedrock.Word Fiat.Common.EnumType Fiat.Common.BoundedLookup Fiat.Narcissus.Formats.WordOpt Fiat.Narcissus.Formats.EnumOpt Fiat.Narcissus.Formats.Bool Fiat.Narcissus.Formats.NatOpt Fiat.Narcissus.Formats.FixStringOpt Fiat.Narcissus.Common.ComposeOpt