val synth_subjectPublicKeyInfo_payload_t (x': subjectPublicKeyInfo_payload_t')
    : GTot (subjectPublicKeyInfo_payload_t)
val synth_subjectPublicKeyInfo_payload_t (x': subjectPublicKeyInfo_payload_t')
    : GTot (subjectPublicKeyInfo_payload_t)
let synth_subjectPublicKeyInfo_payload_t
  (x': subjectPublicKeyInfo_payload_t')
: GTot (subjectPublicKeyInfo_payload_t)
= { subjectPubKey_alg = fst x';
    subjectPubKey     = snd x' }
module X509.BasicFields.SubjectPublicKeyInfo
open ASN1.Spec
open ASN1.Low

open X509.Base
open X509.Crypto

open FStar.Integers

#set-options "--fuel 0 --ifuel 0"

let filter_subjectPublicKeyInfo_payload_t'
  (x: (algorithmIdentifier_t) `tuple2` (datatype_of_asn1_type BIT_STRING))
: GTot bool
= (snd x).bs_len = 33ul &&
  (snd x).bs_unused_bits = 0ul

let subjectPublicKeyInfo_payload_t'
= parse_filter_refine (filter_subjectPublicKeyInfo_payload_t')
/
X509.Crypto.fst.checked X509.Base.fst.checked prims.fst.checked FStar.UInt32.fsti.checked FStar.Pervasives.Native.fst.checked FStar.Pervasives.fsti.checked FStar.Integers.fst.checked ASN1.Spec.fst.checked ASN1.Low.fst.checked
X509.BasicFields.SubjectPublicKeyInfo.fst
x': X509.BasicFields.SubjectPublicKeyInfo.subjectPublicKeyInfo_payload_t'
  -> Prims.GTot X509.BasicFields.SubjectPublicKeyInfo.subjectPublicKeyInfo_payload_t
X509.BasicFields.SubjectPublicKeyInfo.subjectPublicKeyInfo_payload_t' X509.BasicFields.SubjectPublicKeyInfo.MksubjectPublicKeyInfo_payload_t FStar.Pervasives.Native.fst X509.Crypto.AlgorithmIdentifier.algorithmIdentifier_t ASN1.Base.datatype_of_asn1_type ASN1.Base.BIT_STRING FStar.Pervasives.Native.snd X509.BasicFields.SubjectPublicKeyInfo.subjectPublicKeyInfo_payload_t
let synth_subjectPublicKeyInfo_payload_t (x': subjectPublicKeyInfo_payload_t')
    : GTot (subjectPublicKeyInfo_payload_t) =
  
{ subjectPubKey_alg = fst x'; subjectPubKey = snd x' }