quic: fix quic plugin with openssl 3.x
[vpp.git] / src / plugins / quic / quic_crypto.h
index 8e4bbf9..7299b61 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019 Cisco and/or its affiliates.
+ * Copyright (c) 2021 Cisco and/or its affiliates.
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at:
 
 #include <quicly.h>
 
-extern ptls_cipher_suite_t *vpp_crypto_cipher_suites[];
+#if OPENSSL_VERSION_NUMBER >= 0x30000000L
+#include <openssl/provider.h>
 
-#endif /* __included_vpp_quic_crypto_h__ */
+#define quic_load_openssl3_legacy_provider()                                  \
+  do                                                                          \
+    {                                                                         \
+      (void) OSSL_PROVIDER_load (NULL, "legacy");                             \
+    }                                                                         \
+  while (0)
+#else
+#define quic_load_openssl3_legacy_provider()
+#endif
+
+struct quic_ctx_t;
+
+extern ptls_cipher_suite_t *quic_crypto_cipher_suites[];
 
+int quic_encrypt_ticket_cb (ptls_encrypt_ticket_t * _self, ptls_t * tls,
+                           int is_encrypt, ptls_buffer_t * dst,
+                           ptls_iovec_t src);
+void quic_crypto_decrypt_packet (quic_ctx_t * qctx,
+                                quic_rx_packet_ctx_t * pctx);
+
+#endif /* __included_vpp_quic_crypto_h__ */
 /*
  * fd.io coding-style-patch-verification: ON
  *