You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jun 17, 2024. It is now read-only.
moduleQUIC.APImoduleG=FStar.GhostmoduleB=LowStar.BuffermoduleIB=LowStar.ImmutableBuffermoduleHS=FStar.HyperStackopenFStar.HyperStack.STopenEverCrypt.HelpersopenEverCrypt.ErrormoduleSAEAD=Spec.AEADmoduleSH=Spec.HashmoduleSQUIC=Spec.QUICmoduleI32=FStar.Int32moduleU32=FStar.UInt32moduleU16=FStar.UInt16moduleU8=FStar.UInt8(**** Current API of mitlsffi.h ****)[@CAbstractStruct]valquic_state:Type0letpquic_state=B.pointerquic_statetypequic_process_ctx={(* Inputs *)input:IB.bufferU8.t;input_len:U32.t;ouput:B.bufferU8.t;output_len:U32.t;(* Outputs *)tls_error:U16.t;consumed:U32.t;// Bytes read from input bufferwritten:U32.t;// Bytes written to output bufferto_be_written:U32.t;// Bytes left to writereader_epoch:I32.t;writer_epoch:I32.t;flags:U16.t;}valflag_complete:U16.t// Handshake "complete"valflag_rejected_0rtt:U16.t// 0-RTT rejectedvalflag_writeable:U16.t// OK to send application datavalflag_post_hs:U16.t// Output is post-handshake datatyperw=|Writer|Readertypequic_secret={hash_alg:SH.alg;secret:B.bufferU8.t;}valquic_create:config:B.pointerTLSConstants.config->Stpquic_statevalquic_process:st:pquic_state->ctx:B.pointerquic_process_ctx->StU32.tvalquic_get_traffic_secret:st:pquic_state->secret:B.pointerquic_secret->epoch:Int32.t->rw:rw->StU32.tvalquic_send_ticket:st:pquic_state->ticket_data:B.bufferU8.t->ticket_data_len:U32.t->StU32.tvalquic_free:st:pquic_state->StU32.t[@CAbstractStruct]valquic_key:Type0letpquic_key=B.pointerquic_keyvalquic_derive_initial_secrets:con_id:B.bufferU8.t->con_id_len:U32.t->salt:B.bufferU8.t->salt_len:U32.t->St(cli:quic_secret * srv:quic_secret)valquic_crypto_tls_derive_secret:s:quic_secret->label:B.bufferU8.t->len:U32.t->Stquic_secretvalquic_crypto_derive_key:s:quic_secret->Stpquic_keyvalquic_crypto_create:alg:aead_alg->ae_key:B.bufferU8.t->iv:B.bufferU8.t->pne_key:B.bufferU8.t->Stpquic_keyvalquic_crypto_encrypt:st:pquic_key->nonce:U64.t->aad:B.bufferU8.t->aad_len:U32.t->plain:B.bufferU8.t->plain_len:U32.t->cipher:B.bufferU8.t->Stunitvalquic_crypto_decrypt:st:pquic_key->nonce:U64.t->aad:B.bufferU8.t->aad_len:U32.t->cipher:B.bufferU8.t->cipher_len:U32.t->plain:B.bufferU8.t->Stboolvalquic_crypto_hp_mask:st:pquic_key->sample:B.bufferU8.t{B.lengthsample==16}->mask:B.bufferU8.t{B.lengthmask==5}->Stunitvalquic_crypto_free_key:pquic_key->Stunitvalquic_crypto_free_secret:quic_secret->Stunit(**** Integration of QuicCrypto.fsti ****)typeu2=n:U16.t{U8.vn < 4}typeu4=n:U16.t{U8.vn < 16}typeu62=n:UInt64.t{UInt64.vn < pow262}letadd3(n:u4):n:U8.t{U8.vn <=18}=ifn=0uythen0uyelseU8.(3uy+^n)typevlsize=n:U8.t{U8.vn==1\/U8.vn==2\/U8.vn==4\/U8.vn==8}letvlen(n:u62):vlsize=letopenFStar.UInt64inifn <^ 64ull then1uyelseifn <^ 16384ull then2uyelseifn <^ 1073741824ull then4uyelse8uytypequic_header=|Short:spin:U8.t->phase:U8.t->cid:B.bufferU8.t{B.lengthcidinl==0\/(4 <=l/\l <=18)}->header|Long:typ:u2->version:U32.t->dcil:u4->scil:u4->dcid:B.lbufferU8.t(U8.v(add3dcil))->scid:B.lbufferU8.t(U8.v(add3scil))->plain_len:U16.t->// Short due to limitations of AEAD specheadertypequic_process_ctx={(* Inputs *)input:IB.bufferU8.t;input_len:U32.t;ouput:B.bufferU8.t;output_len:U32.t;(* Outputs *)tls_error:U16.t;consumed:U32.t;// Bytes read from input bufferwritten:U32.t;// Bytes written to output bufferto_be_written:U32.t;// Bytes left to writeflags:U16.t;}valquic_process:st:pquic_state->ctx:B.pointerquic_process_ctx->StU32.tvalquic_next_pn:st:pquic_state->rw:rw->Stu62valquic_encrypt_packet:pn_len:u2->h:B.pointerheader->plain:IB.bufferU8.t->plain_len:U32.t{Long?h==>Long?.plain_lenh==plain_len}out:B.bufferU8.t->out_len:U32.t->StU32.ttypequic_packet_r={pn_len:u2;pn:u62;h:header;plain:B.bufferU8.t;plain_len:U16.t;}valquic_decrypt_packet:cid_len:u4->// Stupid, but required for short headerspacket:B.bufferU8.t->packet_len:U32.t->output:B.pointerquic_packet_r->StU32.t(**** QUIC API ****)[@CAbstractStruct]valquic_con:Type0letpquic_con=B.pointerquic_convalquic_set_param:con:pquic_con->param:U32.t->value:B.bufferU8.t->len:U32.t->Stquic_resultvalquic_get_param:con:pquic_con->param:U32.t->len:B.pointerU32.t->out:B.bufferU8.t->Stquic_result[@CAbstractStruct]valquic_stream:Type0letpquic_stream=B.pointerquic_streamtypequic_slice={buffer:B.bufferU8.t;length:U32.t}typequic_stream_event=|Stream_recv:offset:U64.t->total_buffers_len:U32.t->buffers:B.bufferquic_slice->buffers_len:U32.t->flags:U8.t->quic_stream_event|Stream_send_complete:cancelled:bool->ctx:nullptr->quic_stream_event(* | Stream_send_abort: error: U16.t -> quic_stream_event | Stream_recv_abort: error: U16.t -> quic_stream_event*)|Stream_closed:graceful:bool->quic_stream_eventtypequic_stream_cb=(s:pquic_stream->ctx:nullptr->event:quic_stream_event->Stquic_result)valquic_stream_create:con:pquic_con->flags:U32.t->handler:quic_stream_cb->context:nullptr->Stpquic_streamvalquic_stream_send:stream:pquic_stream->inputs:B.bufferquic_slice->inputs_len:U32.t->flags:U32.t->send_ctx:nullptr->Stquic_resultvalquic_stream_close:st:pquic_stream->flags:U32.t->error_code:U16.t->Stquic_resultvalquic_stream_free:pquic_stream->Stunit
The text was updated successfully, but these errors were encountered:
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Notes from May 30 call.
The text was updated successfully, but these errors were encountered: