Lines Matching defs:ets
94 void eaptls_gen_mppe_keys(struct eaptls_session *ets, int client)
104 if (ets->tls_v13)
117 if (SSL_export_keying_material(ets->ssl, out, sizeof(out), prf_label, prf_size,
648 struct eaptls_session *ets;
662 ets = esp->es_server.ea_session;
678 ets->mtu = eaptls_get_mtu(esp->es_unit);
680 ets->ctx = eaptls_init_ssl(1, cacertfile, capath, servcertfile, pkfile, pkcs12);
681 if (!ets->ctx)
684 if (!(ets->ssl = SSL_new(ets->ctx)))
687 if (tls_set_verify_info(ets->ssl, esp->es_server.ea_peer,
688 clicertfile, 0, &ets->info))
694 SSL_set_mode(ets->ssl, SSL_MODE_AUTO_RETRY);
699 ets->into_ssl = BIO_new(BIO_s_mem());
700 ets->from_ssl = BIO_new(BIO_s_mem());
701 SSL_set_bio(ets->ssl, ets->into_ssl, ets->from_ssl);
703 SSL_set_msg_callback(ets->ssl, ssl_msg_callback);
704 SSL_set_msg_callback_arg(ets->ssl, ets);
706 SSL_set_accept_state(ets->ssl);
708 ets->tls_v13 = 0;
710 ets->data = NULL;
711 ets->datalen = 0;
712 ets->alert_sent = 0;
713 ets->alert_recv = 0;
717 SSL_CTX_free(ets->ctx);
726 struct eaptls_session *ets;
740 ets = esp->es_client.ea_session;
741 ets->mtu = eaptls_get_mtu(esp->es_unit);
753 ets->ctx = eaptls_init_ssl(0, cacertfile, capath, clicertfile, pkfile, pkcs12);
754 if (!ets->ctx)
757 ets->ssl = SSL_new(ets->ctx);
758 if (!ets->ssl)
761 if (tls_set_verify_info(ets->ssl, esp->es_client.ea_peer,
762 servcertfile, 0, &ets->info))
769 ets->into_ssl = BIO_new(BIO_s_mem());
770 ets->from_ssl = BIO_new(BIO_s_mem());
771 SSL_set_bio(ets->ssl, ets->into_ssl, ets->from_ssl);
773 SSL_set_msg_callback(ets->ssl, ssl_msg_callback);
774 SSL_set_msg_callback_arg(ets->ssl, ets);
775 SSL_set_connect_state(ets->ssl);
777 ets->tls_v13 = 0;
779 ets->data = NULL;
780 ets->datalen = 0;
781 ets->alert_sent = 0;
782 ets->alert_recv = 0;
787 SSL_CTX_free(ets->ctx);
792 void eaptls_free_session(struct eaptls_session *ets)
794 if (ets->ssl)
795 SSL_free(ets->ssl);
797 if (ets->ctx)
798 SSL_CTX_free(ets->ctx);
800 if (ets->info)
801 tls_free_verify_info(&ets->info);
803 free(ets);
807 int eaptls_is_init_finished(struct eaptls_session *ets)
809 if (ets->ssl && SSL_is_init_finished(ets->ssl))
811 if (ets->tls_v13)
824 int eaptls_receive(struct eaptls_session *ets, u_char * inp, int len)
849 if (!ets->data) {
859 ets->data = malloc(tlslen);
860 if (!ets->data)
863 ets->datalen = 0;
864 ets->tlslen = tlslen;
869 else if (!ets->data) {
874 ets->data = malloc(len);
875 if (!ets->data)
878 ets->datalen = 0;
879 ets->tlslen = len;
883 ets->frag = 1;
885 ets->frag = 0;
892 if (len + ets->datalen > ets->tlslen) {
897 BCOPY(inp, ets->data + ets->datalen, len);
898 ets->datalen += len;
900 if (!ets->frag) {
906 if (ets->datalen != ets->tlslen) {
911 if (BIO_write(ets->into_ssl, ets->data, ets->datalen) == -1)
914 SSL_read(ets->ssl, dummy, 65536);
916 free(ets->data);
917 ets->data = NULL;
918 ets->datalen = 0;
926 * A TLS message read from the ssl engine is buffered in ets->data.
930 int eaptls_send(struct eaptls_session *ets, u_char ** outp)
940 if (!ets->data)
942 if(!ets->alert_sent)
944 res = SSL_read(ets->ssl, fromtls, 65536);
950 if ((res = BIO_read(ets->from_ssl, fromtls, 65536)) == -1)
956 ets->datalen = res;
958 ets->data = malloc(ets->datalen);
959 if (!ets->data)
962 BCOPY(fromtls, ets->data, ets->datalen);
964 ets->offset = 0;
968 size = ets->datalen - ets->offset;
970 if (size > ets->mtu) {
971 size = ets->mtu;
972 ets->frag = 1;
974 ets->frag = 0;
981 if (ets->frag && first) {
983 PUTLONG(ets->datalen, *outp);
984 } else if (ets->frag) {
992 BCOPY(ets->data + ets->offset, *outp, size);
998 BCOPY(start, &ets->rtx[0], *outp - start);
999 ets->rtx_len = *outp - start;
1001 ets->offset += size;
1003 if (ets->offset >= ets->datalen) {
1009 free(ets->data);
1010 ets->data = NULL;
1011 ets->datalen = 0;
1012 ets->offset = 0;
1021 void eaptls_retransmit(struct eaptls_session *ets, u_char ** outp)
1023 BCOPY(ets->rtx, *outp, ets->rtx_len);
1024 INCPTR(ets->rtx_len, *outp);
1037 struct eaptls_session *ets = (struct eaptls_session *)arg;
1074 ets->alert_sent = 1;
1075 ets->alert_sent_desc = code;
1077 ets->alert_recv = 1;
1078 ets->alert_recv_desc = code;
1161 ets->tls_v13 = 1;