@annadata/capacitor-mqtt-quic 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (656) hide show
  1. package/AnnadataCapacitorMqttQuic.podspec +2 -1
  2. package/README.md +121 -12
  3. package/android/NGTCP2_BUILD_INSTRUCTIONS.md +65 -44
  4. package/android/build-openssl.sh +1 -1
  5. package/android/install/nghttp3-android/arm64-v8a/include/nghttp3/nghttp3.h +3295 -0
  6. package/android/install/nghttp3-android/arm64-v8a/include/nghttp3/version.h +46 -0
  7. package/android/install/nghttp3-android/arm64-v8a/lib/cmake/nghttp3/nghttp3Config.cmake +3 -0
  8. package/android/install/nghttp3-android/arm64-v8a/lib/cmake/nghttp3/nghttp3ConfigVersion.cmake +65 -0
  9. package/android/install/nghttp3-android/arm64-v8a/lib/cmake/nghttp3/nghttp3Targets-release.cmake +29 -0
  10. package/android/install/nghttp3-android/arm64-v8a/lib/cmake/nghttp3/nghttp3Targets.cmake +114 -0
  11. package/android/install/nghttp3-android/arm64-v8a/lib/libnghttp3.a +0 -0
  12. package/android/install/nghttp3-android/arm64-v8a/lib/libnghttp3.so +0 -0
  13. package/android/install/nghttp3-android/arm64-v8a/lib/pkgconfig/libnghttp3.pc +34 -0
  14. package/android/install/nghttp3-android/arm64-v8a/share/doc/nghttp3/README.rst +75 -0
  15. package/android/install/nghttp3-android/armeabi-v7a/include/nghttp3/nghttp3.h +3295 -0
  16. package/android/install/nghttp3-android/armeabi-v7a/include/nghttp3/version.h +46 -0
  17. package/android/install/nghttp3-android/armeabi-v7a/lib/cmake/nghttp3/nghttp3Config.cmake +3 -0
  18. package/android/install/nghttp3-android/armeabi-v7a/lib/cmake/nghttp3/nghttp3ConfigVersion.cmake +65 -0
  19. package/android/install/nghttp3-android/armeabi-v7a/lib/cmake/nghttp3/nghttp3Targets-release.cmake +29 -0
  20. package/android/install/nghttp3-android/armeabi-v7a/lib/cmake/nghttp3/nghttp3Targets.cmake +114 -0
  21. package/android/install/nghttp3-android/armeabi-v7a/lib/libnghttp3.a +0 -0
  22. package/android/install/nghttp3-android/armeabi-v7a/lib/libnghttp3.so +0 -0
  23. package/android/install/nghttp3-android/armeabi-v7a/lib/pkgconfig/libnghttp3.pc +34 -0
  24. package/android/install/nghttp3-android/armeabi-v7a/share/doc/nghttp3/README.rst +75 -0
  25. package/android/install/nghttp3-android/x86_64/include/nghttp3/nghttp3.h +3295 -0
  26. package/android/install/nghttp3-android/x86_64/include/nghttp3/version.h +46 -0
  27. package/android/install/nghttp3-android/x86_64/lib/cmake/nghttp3/nghttp3Config.cmake +3 -0
  28. package/android/install/nghttp3-android/x86_64/lib/cmake/nghttp3/nghttp3ConfigVersion.cmake +65 -0
  29. package/android/install/nghttp3-android/x86_64/lib/cmake/nghttp3/nghttp3Targets-release.cmake +29 -0
  30. package/android/install/nghttp3-android/x86_64/lib/cmake/nghttp3/nghttp3Targets.cmake +114 -0
  31. package/android/install/nghttp3-android/x86_64/lib/libnghttp3.a +0 -0
  32. package/android/install/nghttp3-android/x86_64/lib/libnghttp3.so +0 -0
  33. package/android/install/nghttp3-android/x86_64/lib/pkgconfig/libnghttp3.pc +34 -0
  34. package/android/install/nghttp3-android/x86_64/share/doc/nghttp3/README.rst +75 -0
  35. package/android/install/ngtcp2-android/arm64-v8a/include/ngtcp2/ngtcp2.h +6254 -0
  36. package/android/install/ngtcp2-android/arm64-v8a/include/ngtcp2/ngtcp2_crypto.h +1037 -0
  37. package/android/install/ngtcp2-android/arm64-v8a/include/ngtcp2/ngtcp2_crypto_wolfssl.h +106 -0
  38. package/android/install/ngtcp2-android/arm64-v8a/include/ngtcp2/version.h +51 -0
  39. package/android/install/ngtcp2-android/arm64-v8a/lib/cmake/ngtcp2/ngtcp2Config.cmake +6 -0
  40. package/android/install/ngtcp2-android/arm64-v8a/lib/cmake/ngtcp2/ngtcp2ConfigVersion.cmake +65 -0
  41. package/android/install/ngtcp2-android/arm64-v8a/lib/cmake/ngtcp2/ngtcp2Targets-release.cmake +29 -0
  42. package/android/install/ngtcp2-android/arm64-v8a/lib/cmake/ngtcp2/ngtcp2Targets.cmake +114 -0
  43. package/android/install/ngtcp2-android/arm64-v8a/lib/libngtcp2.a +0 -0
  44. package/android/install/ngtcp2-android/arm64-v8a/lib/libngtcp2.so +0 -0
  45. package/android/install/ngtcp2-android/arm64-v8a/lib/libngtcp2_crypto_wolfssl.a +0 -0
  46. package/android/install/ngtcp2-android/arm64-v8a/lib/libngtcp2_crypto_wolfssl.so +0 -0
  47. package/android/install/ngtcp2-android/arm64-v8a/lib/pkgconfig/libngtcp2.pc +33 -0
  48. package/android/install/ngtcp2-android/arm64-v8a/lib/pkgconfig/libngtcp2_crypto_wolfssl.pc +34 -0
  49. package/android/install/ngtcp2-android/arm64-v8a/share/doc/ngtcp2/README.rst +385 -0
  50. package/android/install/ngtcp2-android/armeabi-v7a/include/ngtcp2/ngtcp2.h +6254 -0
  51. package/android/install/ngtcp2-android/armeabi-v7a/include/ngtcp2/ngtcp2_crypto.h +1037 -0
  52. package/android/install/ngtcp2-android/armeabi-v7a/include/ngtcp2/ngtcp2_crypto_wolfssl.h +106 -0
  53. package/android/install/ngtcp2-android/armeabi-v7a/include/ngtcp2/version.h +51 -0
  54. package/android/install/ngtcp2-android/armeabi-v7a/lib/cmake/ngtcp2/ngtcp2Config.cmake +6 -0
  55. package/android/install/ngtcp2-android/armeabi-v7a/lib/cmake/ngtcp2/ngtcp2ConfigVersion.cmake +65 -0
  56. package/android/install/ngtcp2-android/armeabi-v7a/lib/cmake/ngtcp2/ngtcp2Targets-release.cmake +29 -0
  57. package/android/install/ngtcp2-android/armeabi-v7a/lib/cmake/ngtcp2/ngtcp2Targets.cmake +114 -0
  58. package/android/install/ngtcp2-android/armeabi-v7a/lib/libngtcp2.a +0 -0
  59. package/android/install/ngtcp2-android/armeabi-v7a/lib/libngtcp2.so +0 -0
  60. package/android/install/ngtcp2-android/armeabi-v7a/lib/libngtcp2_crypto_wolfssl.a +0 -0
  61. package/android/install/ngtcp2-android/armeabi-v7a/lib/libngtcp2_crypto_wolfssl.so +0 -0
  62. package/android/install/ngtcp2-android/armeabi-v7a/lib/pkgconfig/libngtcp2.pc +33 -0
  63. package/android/install/ngtcp2-android/armeabi-v7a/lib/pkgconfig/libngtcp2_crypto_wolfssl.pc +34 -0
  64. package/android/install/ngtcp2-android/armeabi-v7a/share/doc/ngtcp2/README.rst +385 -0
  65. package/android/install/ngtcp2-android/x86_64/include/ngtcp2/ngtcp2.h +6254 -0
  66. package/android/install/ngtcp2-android/x86_64/include/ngtcp2/ngtcp2_crypto.h +1037 -0
  67. package/android/install/ngtcp2-android/x86_64/include/ngtcp2/ngtcp2_crypto_wolfssl.h +106 -0
  68. package/android/install/ngtcp2-android/x86_64/include/ngtcp2/version.h +51 -0
  69. package/android/install/ngtcp2-android/x86_64/lib/cmake/ngtcp2/ngtcp2Config.cmake +6 -0
  70. package/android/install/ngtcp2-android/x86_64/lib/cmake/ngtcp2/ngtcp2ConfigVersion.cmake +65 -0
  71. package/android/install/ngtcp2-android/x86_64/lib/cmake/ngtcp2/ngtcp2Targets-release.cmake +29 -0
  72. package/android/install/ngtcp2-android/x86_64/lib/cmake/ngtcp2/ngtcp2Targets.cmake +114 -0
  73. package/android/install/ngtcp2-android/x86_64/lib/libngtcp2.a +0 -0
  74. package/android/install/ngtcp2-android/x86_64/lib/libngtcp2.so +0 -0
  75. package/android/install/ngtcp2-android/x86_64/lib/libngtcp2_crypto_wolfssl.a +0 -0
  76. package/android/install/ngtcp2-android/x86_64/lib/libngtcp2_crypto_wolfssl.so +0 -0
  77. package/android/install/ngtcp2-android/x86_64/lib/pkgconfig/libngtcp2.pc +33 -0
  78. package/android/install/ngtcp2-android/x86_64/lib/pkgconfig/libngtcp2_crypto_wolfssl.pc +34 -0
  79. package/android/install/ngtcp2-android/x86_64/share/doc/ngtcp2/README.rst +385 -0
  80. package/android/install/wolfssl-android/arm64-v8a/bin/wolfssl-config +117 -0
  81. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/callbacks.h +93 -0
  82. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/certs_test.h +7073 -0
  83. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/certs_test_sm.h +2913 -0
  84. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/crl.h +58 -0
  85. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/error-ssl.h +280 -0
  86. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/ocsp.h +191 -0
  87. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/aes.h +117 -0
  88. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/asn1.h +315 -0
  89. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/asn1t.h +30 -0
  90. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/bio.h +237 -0
  91. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/bn.h +332 -0
  92. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/buffer.h +57 -0
  93. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/camellia.h +27 -0
  94. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/cmac.h +66 -0
  95. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/cms.h +26 -0
  96. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/compat_types.h +70 -0
  97. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/conf.h +117 -0
  98. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/crypto.h +171 -0
  99. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/des.h +124 -0
  100. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/dh.h +144 -0
  101. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/dsa.h +164 -0
  102. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/ec.h +525 -0
  103. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/ec25519.h +46 -0
  104. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/ec448.h +46 -0
  105. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/ecdh.h +49 -0
  106. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/ecdsa.h +87 -0
  107. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/ed25519.h +49 -0
  108. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/ed448.h +49 -0
  109. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/engine.h +9 -0
  110. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/err.h +84 -0
  111. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/evp.h +1540 -0
  112. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/fips_rand.h +125 -0
  113. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/hmac.h +98 -0
  114. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/kdf.h +45 -0
  115. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/lhash.h +64 -0
  116. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/md4.h +66 -0
  117. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/md5.h +108 -0
  118. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/modes.h +45 -0
  119. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/obj_mac.h +92 -0
  120. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/objects.h +86 -0
  121. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/ocsp.h +108 -0
  122. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/opensslconf.h +8 -0
  123. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/opensslv.h +78 -0
  124. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/ossl_typ.h +32 -0
  125. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/pem.h +301 -0
  126. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/pkcs12.h +57 -0
  127. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/pkcs7.h +110 -0
  128. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/rand.h +38 -0
  129. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/rc4.h +64 -0
  130. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/ripemd.h +58 -0
  131. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/rsa.h +291 -0
  132. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/safestack.h +40 -0
  133. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/sha.h +331 -0
  134. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/sha3.h +158 -0
  135. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/srp.h +33 -0
  136. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/ssl.h +1923 -0
  137. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/ssl23.h +1 -0
  138. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/stack.h +61 -0
  139. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/tls1.h +64 -0
  140. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/txt_db.h +60 -0
  141. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/ui.h +2 -0
  142. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/x509.h +227 -0
  143. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/x509_vfy.h +50 -0
  144. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/openssl/x509v3.h +237 -0
  145. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/options.h +273 -0
  146. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/quic.h +310 -0
  147. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/sniffer.h +359 -0
  148. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/sniffer_error.h +151 -0
  149. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/ssl.h +6300 -0
  150. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/test.h +4989 -0
  151. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/version.h +40 -0
  152. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/aes.h +1074 -0
  153. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/arc4.h +69 -0
  154. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/ascon.h +109 -0
  155. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/asn.h +2855 -0
  156. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/asn_public.h +1009 -0
  157. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/blake2-impl.h +155 -0
  158. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/blake2-int.h +174 -0
  159. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/blake2.h +108 -0
  160. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/camellia.h +116 -0
  161. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/chacha.h +133 -0
  162. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/chacha20_poly1305.h +157 -0
  163. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/cmac.h +168 -0
  164. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/coding.h +107 -0
  165. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/compress.h +60 -0
  166. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/cpuid.h +153 -0
  167. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/cryptocb.h +770 -0
  168. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/curve25519.h +225 -0
  169. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/curve448.h +151 -0
  170. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/des3.h +167 -0
  171. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/dh.h +210 -0
  172. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/dilithium.h +1051 -0
  173. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/dsa.h +121 -0
  174. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/ecc.h +1074 -0
  175. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/eccsi.h +176 -0
  176. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/ed25519.h +239 -0
  177. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/ed448.h +214 -0
  178. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/error-crypt.h +368 -0
  179. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/ext_lms.h +62 -0
  180. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/ext_mlkem.h +74 -0
  181. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/ext_xmss.h +53 -0
  182. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/falcon.h +180 -0
  183. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/fe_448.h +122 -0
  184. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/fe_operations.h +189 -0
  185. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/fips_test.h +131 -0
  186. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/ge_448.h +84 -0
  187. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/ge_operations.h +134 -0
  188. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/hash.h +296 -0
  189. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/hmac.h +231 -0
  190. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/hpke.h +145 -0
  191. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/integer.h +449 -0
  192. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/kdf.h +199 -0
  193. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/lms.h +202 -0
  194. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/logging.h +588 -0
  195. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/md2.h +83 -0
  196. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/md4.h +77 -0
  197. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/md5.h +141 -0
  198. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/mem_track.h +968 -0
  199. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/memory.h +545 -0
  200. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/misc.h +214 -0
  201. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/mlkem.h +377 -0
  202. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/mpi_class.h +1021 -0
  203. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/mpi_superclass.h +96 -0
  204. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/oid_sum.h +1907 -0
  205. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/pkcs12.h +79 -0
  206. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/pkcs7.h +578 -0
  207. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/poly1305.h +207 -0
  208. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/pwdbased.h +81 -0
  209. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/random.h +300 -0
  210. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/rc2.h +68 -0
  211. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/ripemd.h +67 -0
  212. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/rsa.h +494 -0
  213. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/sakke.h +228 -0
  214. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/settings.h +4762 -0
  215. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/sha.h +237 -0
  216. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/sha256.h +360 -0
  217. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/sha3.h +274 -0
  218. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/sha512.h +372 -0
  219. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/signature.h +87 -0
  220. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/siphash.h +101 -0
  221. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/sm2.h +27 -0
  222. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/sm3.h +27 -0
  223. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/sm4.h +27 -0
  224. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/sp_int.h +1396 -0
  225. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/sphincs.h +167 -0
  226. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/srp.h +313 -0
  227. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/tfm.h +941 -0
  228. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/types.h +2383 -0
  229. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/visibility.h +97 -0
  230. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/wc_encrypt.h +126 -0
  231. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/wc_lms.h +506 -0
  232. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/wc_mlkem.h +370 -0
  233. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/wc_port.h +1764 -0
  234. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/wc_xmss.h +285 -0
  235. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/wolfevent.h +120 -0
  236. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/wolfmath.h +175 -0
  237. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfcrypt/xmss.h +203 -0
  238. package/android/install/wolfssl-android/arm64-v8a/include/wolfssl/wolfio.h +1035 -0
  239. package/android/install/wolfssl-android/arm64-v8a/lib/libwolfssl.a +0 -0
  240. package/android/install/wolfssl-android/arm64-v8a/lib/libwolfssl.la +41 -0
  241. package/android/install/wolfssl-android/arm64-v8a/lib/pkgconfig/wolfssl.pc +11 -0
  242. package/android/install/wolfssl-android/arm64-v8a/share/doc/wolfssl/QUIC.md +117 -0
  243. package/android/install/wolfssl-android/arm64-v8a/share/doc/wolfssl/README.txt +8 -0
  244. package/android/install/wolfssl-android/arm64-v8a/share/doc/wolfssl/example/async_client.c +245 -0
  245. package/android/install/wolfssl-android/arm64-v8a/share/doc/wolfssl/example/async_server.c +331 -0
  246. package/android/install/wolfssl-android/arm64-v8a/share/doc/wolfssl/example/client.c +4885 -0
  247. package/android/install/wolfssl-android/arm64-v8a/share/doc/wolfssl/example/echoclient.c +341 -0
  248. package/android/install/wolfssl-android/arm64-v8a/share/doc/wolfssl/example/echoserver.c +498 -0
  249. package/android/install/wolfssl-android/arm64-v8a/share/doc/wolfssl/example/sctp-client-dtls.c +135 -0
  250. package/android/install/wolfssl-android/arm64-v8a/share/doc/wolfssl/example/sctp-client.c +78 -0
  251. package/android/install/wolfssl-android/arm64-v8a/share/doc/wolfssl/example/sctp-server-dtls.c +134 -0
  252. package/android/install/wolfssl-android/arm64-v8a/share/doc/wolfssl/example/sctp-server.c +83 -0
  253. package/android/install/wolfssl-android/arm64-v8a/share/doc/wolfssl/example/server.c +4124 -0
  254. package/android/install/wolfssl-android/arm64-v8a/share/doc/wolfssl/example/tls_bench.c +2357 -0
  255. package/android/install/wolfssl-android/arm64-v8a/share/doc/wolfssl/taoCert.txt +176 -0
  256. package/android/install/wolfssl-android/armeabi-v7a/bin/wolfssl-config +117 -0
  257. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/callbacks.h +93 -0
  258. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/certs_test.h +7073 -0
  259. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/certs_test_sm.h +2913 -0
  260. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/crl.h +58 -0
  261. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/error-ssl.h +280 -0
  262. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/ocsp.h +191 -0
  263. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/aes.h +117 -0
  264. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/asn1.h +315 -0
  265. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/asn1t.h +30 -0
  266. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/bio.h +237 -0
  267. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/bn.h +332 -0
  268. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/buffer.h +57 -0
  269. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/camellia.h +27 -0
  270. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/cmac.h +66 -0
  271. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/cms.h +26 -0
  272. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/compat_types.h +70 -0
  273. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/conf.h +117 -0
  274. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/crypto.h +171 -0
  275. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/des.h +124 -0
  276. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/dh.h +144 -0
  277. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/dsa.h +164 -0
  278. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/ec.h +525 -0
  279. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/ec25519.h +46 -0
  280. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/ec448.h +46 -0
  281. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/ecdh.h +49 -0
  282. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/ecdsa.h +87 -0
  283. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/ed25519.h +49 -0
  284. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/ed448.h +49 -0
  285. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/engine.h +9 -0
  286. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/err.h +84 -0
  287. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/evp.h +1540 -0
  288. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/fips_rand.h +125 -0
  289. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/hmac.h +98 -0
  290. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/kdf.h +45 -0
  291. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/lhash.h +64 -0
  292. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/md4.h +66 -0
  293. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/md5.h +108 -0
  294. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/modes.h +45 -0
  295. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/obj_mac.h +92 -0
  296. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/objects.h +86 -0
  297. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/ocsp.h +108 -0
  298. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/opensslconf.h +8 -0
  299. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/opensslv.h +78 -0
  300. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/ossl_typ.h +32 -0
  301. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/pem.h +301 -0
  302. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/pkcs12.h +57 -0
  303. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/pkcs7.h +110 -0
  304. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/rand.h +38 -0
  305. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/rc4.h +64 -0
  306. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/ripemd.h +58 -0
  307. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/rsa.h +291 -0
  308. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/safestack.h +40 -0
  309. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/sha.h +331 -0
  310. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/sha3.h +158 -0
  311. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/srp.h +33 -0
  312. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/ssl.h +1923 -0
  313. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/ssl23.h +1 -0
  314. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/stack.h +61 -0
  315. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/tls1.h +64 -0
  316. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/txt_db.h +60 -0
  317. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/ui.h +2 -0
  318. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/x509.h +227 -0
  319. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/x509_vfy.h +50 -0
  320. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/openssl/x509v3.h +237 -0
  321. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/options.h +261 -0
  322. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/quic.h +310 -0
  323. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/sniffer.h +359 -0
  324. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/sniffer_error.h +151 -0
  325. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/ssl.h +6300 -0
  326. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/test.h +4989 -0
  327. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/version.h +40 -0
  328. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/aes.h +1074 -0
  329. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/arc4.h +69 -0
  330. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/ascon.h +109 -0
  331. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/asn.h +2855 -0
  332. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/asn_public.h +1009 -0
  333. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/blake2-impl.h +155 -0
  334. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/blake2-int.h +174 -0
  335. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/blake2.h +108 -0
  336. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/camellia.h +116 -0
  337. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/chacha.h +133 -0
  338. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/chacha20_poly1305.h +157 -0
  339. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/cmac.h +168 -0
  340. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/coding.h +107 -0
  341. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/compress.h +60 -0
  342. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/cpuid.h +153 -0
  343. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/cryptocb.h +770 -0
  344. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/curve25519.h +225 -0
  345. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/curve448.h +151 -0
  346. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/des3.h +167 -0
  347. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/dh.h +210 -0
  348. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/dilithium.h +1051 -0
  349. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/dsa.h +121 -0
  350. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/ecc.h +1074 -0
  351. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/eccsi.h +176 -0
  352. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/ed25519.h +239 -0
  353. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/ed448.h +214 -0
  354. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/error-crypt.h +368 -0
  355. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/ext_lms.h +62 -0
  356. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/ext_mlkem.h +74 -0
  357. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/ext_xmss.h +53 -0
  358. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/falcon.h +180 -0
  359. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/fe_448.h +122 -0
  360. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/fe_operations.h +189 -0
  361. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/fips_test.h +131 -0
  362. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/ge_448.h +84 -0
  363. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/ge_operations.h +134 -0
  364. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/hash.h +296 -0
  365. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/hmac.h +231 -0
  366. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/hpke.h +145 -0
  367. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/integer.h +449 -0
  368. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/kdf.h +199 -0
  369. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/lms.h +202 -0
  370. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/logging.h +588 -0
  371. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/md2.h +83 -0
  372. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/md4.h +77 -0
  373. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/md5.h +141 -0
  374. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/mem_track.h +968 -0
  375. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/memory.h +545 -0
  376. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/misc.h +214 -0
  377. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/mlkem.h +377 -0
  378. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/mpi_class.h +1021 -0
  379. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/mpi_superclass.h +96 -0
  380. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/oid_sum.h +1907 -0
  381. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/pkcs12.h +79 -0
  382. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/pkcs7.h +578 -0
  383. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/poly1305.h +207 -0
  384. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/pwdbased.h +81 -0
  385. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/random.h +300 -0
  386. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/rc2.h +68 -0
  387. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/ripemd.h +67 -0
  388. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/rsa.h +494 -0
  389. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/sakke.h +228 -0
  390. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/settings.h +4762 -0
  391. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/sha.h +237 -0
  392. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/sha256.h +360 -0
  393. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/sha3.h +274 -0
  394. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/sha512.h +372 -0
  395. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/signature.h +87 -0
  396. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/siphash.h +101 -0
  397. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/sm2.h +27 -0
  398. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/sm3.h +27 -0
  399. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/sm4.h +27 -0
  400. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/sp_int.h +1396 -0
  401. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/sphincs.h +167 -0
  402. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/srp.h +313 -0
  403. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/tfm.h +941 -0
  404. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/types.h +2383 -0
  405. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/visibility.h +97 -0
  406. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/wc_encrypt.h +126 -0
  407. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/wc_lms.h +506 -0
  408. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/wc_mlkem.h +370 -0
  409. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/wc_port.h +1764 -0
  410. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/wc_xmss.h +285 -0
  411. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/wolfevent.h +120 -0
  412. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/wolfmath.h +175 -0
  413. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfcrypt/xmss.h +203 -0
  414. package/android/install/wolfssl-android/armeabi-v7a/include/wolfssl/wolfio.h +1035 -0
  415. package/android/install/wolfssl-android/armeabi-v7a/lib/libwolfssl.a +0 -0
  416. package/android/install/wolfssl-android/armeabi-v7a/lib/libwolfssl.la +41 -0
  417. package/android/install/wolfssl-android/armeabi-v7a/lib/pkgconfig/wolfssl.pc +11 -0
  418. package/android/install/wolfssl-android/armeabi-v7a/share/doc/wolfssl/QUIC.md +117 -0
  419. package/android/install/wolfssl-android/armeabi-v7a/share/doc/wolfssl/README.txt +8 -0
  420. package/android/install/wolfssl-android/armeabi-v7a/share/doc/wolfssl/example/async_client.c +245 -0
  421. package/android/install/wolfssl-android/armeabi-v7a/share/doc/wolfssl/example/async_server.c +331 -0
  422. package/android/install/wolfssl-android/armeabi-v7a/share/doc/wolfssl/example/client.c +4885 -0
  423. package/android/install/wolfssl-android/armeabi-v7a/share/doc/wolfssl/example/echoclient.c +341 -0
  424. package/android/install/wolfssl-android/armeabi-v7a/share/doc/wolfssl/example/echoserver.c +498 -0
  425. package/android/install/wolfssl-android/armeabi-v7a/share/doc/wolfssl/example/sctp-client-dtls.c +135 -0
  426. package/android/install/wolfssl-android/armeabi-v7a/share/doc/wolfssl/example/sctp-client.c +78 -0
  427. package/android/install/wolfssl-android/armeabi-v7a/share/doc/wolfssl/example/sctp-server-dtls.c +134 -0
  428. package/android/install/wolfssl-android/armeabi-v7a/share/doc/wolfssl/example/sctp-server.c +83 -0
  429. package/android/install/wolfssl-android/armeabi-v7a/share/doc/wolfssl/example/server.c +4124 -0
  430. package/android/install/wolfssl-android/armeabi-v7a/share/doc/wolfssl/example/tls_bench.c +2357 -0
  431. package/android/install/wolfssl-android/armeabi-v7a/share/doc/wolfssl/taoCert.txt +176 -0
  432. package/android/install/wolfssl-android/x86_64/bin/wolfssl-config +117 -0
  433. package/android/install/wolfssl-android/x86_64/include/wolfssl/callbacks.h +93 -0
  434. package/android/install/wolfssl-android/x86_64/include/wolfssl/certs_test.h +7073 -0
  435. package/android/install/wolfssl-android/x86_64/include/wolfssl/certs_test_sm.h +2913 -0
  436. package/android/install/wolfssl-android/x86_64/include/wolfssl/crl.h +58 -0
  437. package/android/install/wolfssl-android/x86_64/include/wolfssl/error-ssl.h +280 -0
  438. package/android/install/wolfssl-android/x86_64/include/wolfssl/ocsp.h +191 -0
  439. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/aes.h +117 -0
  440. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/asn1.h +315 -0
  441. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/asn1t.h +30 -0
  442. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/bio.h +237 -0
  443. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/bn.h +332 -0
  444. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/buffer.h +57 -0
  445. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/camellia.h +27 -0
  446. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/cmac.h +66 -0
  447. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/cms.h +26 -0
  448. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/compat_types.h +70 -0
  449. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/conf.h +117 -0
  450. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/crypto.h +171 -0
  451. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/des.h +124 -0
  452. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/dh.h +144 -0
  453. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/dsa.h +164 -0
  454. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/ec.h +525 -0
  455. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/ec25519.h +46 -0
  456. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/ec448.h +46 -0
  457. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/ecdh.h +49 -0
  458. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/ecdsa.h +87 -0
  459. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/ed25519.h +49 -0
  460. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/ed448.h +49 -0
  461. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/engine.h +9 -0
  462. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/err.h +84 -0
  463. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/evp.h +1540 -0
  464. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/fips_rand.h +125 -0
  465. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/hmac.h +98 -0
  466. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/kdf.h +45 -0
  467. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/lhash.h +64 -0
  468. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/md4.h +66 -0
  469. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/md5.h +108 -0
  470. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/modes.h +45 -0
  471. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/obj_mac.h +92 -0
  472. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/objects.h +86 -0
  473. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/ocsp.h +108 -0
  474. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/opensslconf.h +8 -0
  475. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/opensslv.h +78 -0
  476. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/ossl_typ.h +32 -0
  477. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/pem.h +301 -0
  478. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/pkcs12.h +57 -0
  479. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/pkcs7.h +110 -0
  480. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/rand.h +38 -0
  481. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/rc4.h +64 -0
  482. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/ripemd.h +58 -0
  483. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/rsa.h +291 -0
  484. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/safestack.h +40 -0
  485. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/sha.h +331 -0
  486. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/sha3.h +158 -0
  487. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/srp.h +33 -0
  488. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/ssl.h +1923 -0
  489. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/ssl23.h +1 -0
  490. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/stack.h +61 -0
  491. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/tls1.h +64 -0
  492. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/txt_db.h +60 -0
  493. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/ui.h +2 -0
  494. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/x509.h +227 -0
  495. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/x509_vfy.h +50 -0
  496. package/android/install/wolfssl-android/x86_64/include/wolfssl/openssl/x509v3.h +237 -0
  497. package/android/install/wolfssl-android/x86_64/include/wolfssl/options.h +273 -0
  498. package/android/install/wolfssl-android/x86_64/include/wolfssl/quic.h +310 -0
  499. package/android/install/wolfssl-android/x86_64/include/wolfssl/sniffer.h +359 -0
  500. package/android/install/wolfssl-android/x86_64/include/wolfssl/sniffer_error.h +151 -0
  501. package/android/install/wolfssl-android/x86_64/include/wolfssl/ssl.h +6300 -0
  502. package/android/install/wolfssl-android/x86_64/include/wolfssl/test.h +4989 -0
  503. package/android/install/wolfssl-android/x86_64/include/wolfssl/version.h +40 -0
  504. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/aes.h +1074 -0
  505. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/arc4.h +69 -0
  506. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/ascon.h +109 -0
  507. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/asn.h +2855 -0
  508. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/asn_public.h +1009 -0
  509. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/blake2-impl.h +155 -0
  510. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/blake2-int.h +174 -0
  511. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/blake2.h +108 -0
  512. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/camellia.h +116 -0
  513. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/chacha.h +133 -0
  514. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/chacha20_poly1305.h +157 -0
  515. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/cmac.h +168 -0
  516. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/coding.h +107 -0
  517. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/compress.h +60 -0
  518. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/cpuid.h +153 -0
  519. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/cryptocb.h +770 -0
  520. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/curve25519.h +225 -0
  521. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/curve448.h +151 -0
  522. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/des3.h +167 -0
  523. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/dh.h +210 -0
  524. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/dilithium.h +1051 -0
  525. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/dsa.h +121 -0
  526. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/ecc.h +1074 -0
  527. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/eccsi.h +176 -0
  528. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/ed25519.h +239 -0
  529. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/ed448.h +214 -0
  530. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/error-crypt.h +368 -0
  531. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/ext_lms.h +62 -0
  532. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/ext_mlkem.h +74 -0
  533. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/ext_xmss.h +53 -0
  534. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/falcon.h +180 -0
  535. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/fe_448.h +122 -0
  536. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/fe_operations.h +189 -0
  537. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/fips_test.h +131 -0
  538. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/ge_448.h +84 -0
  539. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/ge_operations.h +134 -0
  540. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/hash.h +296 -0
  541. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/hmac.h +231 -0
  542. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/hpke.h +145 -0
  543. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/integer.h +449 -0
  544. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/kdf.h +199 -0
  545. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/lms.h +202 -0
  546. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/logging.h +588 -0
  547. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/md2.h +83 -0
  548. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/md4.h +77 -0
  549. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/md5.h +141 -0
  550. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/mem_track.h +968 -0
  551. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/memory.h +545 -0
  552. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/misc.h +214 -0
  553. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/mlkem.h +377 -0
  554. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/mpi_class.h +1021 -0
  555. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/mpi_superclass.h +96 -0
  556. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/oid_sum.h +1907 -0
  557. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/pkcs12.h +79 -0
  558. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/pkcs7.h +578 -0
  559. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/poly1305.h +207 -0
  560. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/pwdbased.h +81 -0
  561. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/random.h +300 -0
  562. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/rc2.h +68 -0
  563. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/ripemd.h +67 -0
  564. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/rsa.h +494 -0
  565. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/sakke.h +228 -0
  566. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/settings.h +4762 -0
  567. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/sha.h +237 -0
  568. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/sha256.h +360 -0
  569. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/sha3.h +274 -0
  570. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/sha512.h +372 -0
  571. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/signature.h +87 -0
  572. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/siphash.h +101 -0
  573. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/sm2.h +27 -0
  574. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/sm3.h +27 -0
  575. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/sm4.h +27 -0
  576. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/sp_int.h +1396 -0
  577. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/sphincs.h +167 -0
  578. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/srp.h +313 -0
  579. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/tfm.h +941 -0
  580. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/types.h +2383 -0
  581. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/visibility.h +97 -0
  582. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/wc_encrypt.h +126 -0
  583. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/wc_lms.h +506 -0
  584. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/wc_mlkem.h +370 -0
  585. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/wc_port.h +1764 -0
  586. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/wc_xmss.h +285 -0
  587. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/wolfevent.h +120 -0
  588. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/wolfmath.h +175 -0
  589. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfcrypt/xmss.h +203 -0
  590. package/android/install/wolfssl-android/x86_64/include/wolfssl/wolfio.h +1035 -0
  591. package/android/install/wolfssl-android/x86_64/lib/libwolfssl.a +0 -0
  592. package/android/install/wolfssl-android/x86_64/lib/libwolfssl.la +41 -0
  593. package/android/install/wolfssl-android/x86_64/lib/pkgconfig/wolfssl.pc +11 -0
  594. package/android/install/wolfssl-android/x86_64/share/doc/wolfssl/QUIC.md +117 -0
  595. package/android/install/wolfssl-android/x86_64/share/doc/wolfssl/README.txt +8 -0
  596. package/android/install/wolfssl-android/x86_64/share/doc/wolfssl/example/async_client.c +245 -0
  597. package/android/install/wolfssl-android/x86_64/share/doc/wolfssl/example/async_server.c +331 -0
  598. package/android/install/wolfssl-android/x86_64/share/doc/wolfssl/example/client.c +4885 -0
  599. package/android/install/wolfssl-android/x86_64/share/doc/wolfssl/example/echoclient.c +341 -0
  600. package/android/install/wolfssl-android/x86_64/share/doc/wolfssl/example/echoserver.c +498 -0
  601. package/android/install/wolfssl-android/x86_64/share/doc/wolfssl/example/sctp-client-dtls.c +135 -0
  602. package/android/install/wolfssl-android/x86_64/share/doc/wolfssl/example/sctp-client.c +78 -0
  603. package/android/install/wolfssl-android/x86_64/share/doc/wolfssl/example/sctp-server-dtls.c +134 -0
  604. package/android/install/wolfssl-android/x86_64/share/doc/wolfssl/example/sctp-server.c +83 -0
  605. package/android/install/wolfssl-android/x86_64/share/doc/wolfssl/example/server.c +4124 -0
  606. package/android/install/wolfssl-android/x86_64/share/doc/wolfssl/example/tls_bench.c +2357 -0
  607. package/android/install/wolfssl-android/x86_64/share/doc/wolfssl/taoCert.txt +176 -0
  608. package/android/src/main/cpp/CMakeLists.txt +19 -27
  609. package/android/src/main/cpp/ngtcp2_jni.cpp +30 -36
  610. package/android/src/main/kotlin/ai/annadata/mqttquic/MqttQuicPlugin.kt +15 -0
  611. package/android/src/main/kotlin/ai/annadata/mqttquic/client/MQTTClient.kt +6 -2
  612. package/build-native.sh +397 -0
  613. package/deps-versions.sh +25 -0
  614. package/dist/esm/definitions.d.ts +20 -0
  615. package/dist/esm/definitions.d.ts.map +1 -1
  616. package/dist/esm/web.d.ts +26 -3
  617. package/dist/esm/web.d.ts.map +1 -1
  618. package/dist/esm/web.js +230 -10
  619. package/dist/esm/web.js.map +1 -1
  620. package/dist/plugin.cjs.js +11363 -13
  621. package/dist/plugin.cjs.js.map +1 -1
  622. package/dist/plugin.js +11364 -14
  623. package/dist/plugin.js.map +1 -1
  624. package/docs/ARCHITECTURAL_ANALYSIS.md +710 -0
  625. package/docs/CAPACITOR_MQTT_QUIC_PRODUCTION_PLUGIN.md +190 -0
  626. package/docs/CAPACITOR_VERSION_SUPPORT.md +65 -0
  627. package/docs/IMPLEMENTATION_SUMMARY.md +246 -0
  628. package/docs/MQTT5_CLIENT_COMPLIANCE.md +48 -0
  629. package/docs/MQTT5_IMPLEMENTATION_COMPLETE.md +178 -0
  630. package/docs/MQTT_VERSION_ANALYSIS.md +233 -0
  631. package/docs/NGTCP2_IMPLEMENTATION_STATUS.md +214 -0
  632. package/docs/NGTCP2_INTEGRATION_PLAN.md +597 -0
  633. package/docs/P0_P1_CHANGELOG.md +79 -0
  634. package/docs/PRODUCTION_PUBLISH_STEPS.md +161 -0
  635. package/docs/PROJECT_OVERVIEW.md +193 -0
  636. package/ios/.swiftpm/xcode/xcuserdata/annadata.xcuserdatad/xcschemes/xcschememanagement.plist +1 -1
  637. package/ios/NGTCP2_BUILD_INSTRUCTIONS.md +12 -0
  638. package/ios/Sources/MqttQuicPlugin/MqttQuicPlugin.swift +6 -0
  639. package/ios/Sources/MqttQuicPlugin/QUIC/NGTCP2Bridge.mm +6 -0
  640. package/ios/build-openssl.sh +1 -1
  641. package/ios/libs/MqttQuicLibs.xcframework/Info.plist +44 -0
  642. package/ios/libs/MqttQuicLibs.xcframework/ios-arm64/libmqttquic_native_device.a +0 -0
  643. package/ios/libs/MqttQuicLibs.xcframework/ios-arm64_x86_64-simulator/libmqttquic_native_simulator.a +0 -0
  644. package/ios/libs/libnghttp3.a +0 -0
  645. package/ios/libs/libngtcp2.a +0 -0
  646. package/ios/libs/libngtcp2_crypto_wolfssl.a +0 -0
  647. package/ios/libs/libwolfssl.a +0 -0
  648. package/ios/libs-simulator/libnghttp3.a +0 -0
  649. package/ios/libs-simulator/libngtcp2.a +0 -0
  650. package/ios/libs-simulator/libngtcp2_crypto_wolfssl.a +0 -0
  651. package/ios/libs-simulator/libwolfssl.a +0 -0
  652. package/ios/libs-simulator-x86_64/libnghttp3.a +0 -0
  653. package/ios/libs-simulator-x86_64/libngtcp2.a +0 -0
  654. package/ios/libs-simulator-x86_64/libngtcp2_crypto_wolfssl.a +0 -0
  655. package/ios/libs-simulator-x86_64/libwolfssl.a +0 -0
  656. package/package.json +22 -9
@@ -0,0 +1,1074 @@
1
+ /* ecc.h
2
+ *
3
+ * Copyright (C) 2006-2025 wolfSSL Inc.
4
+ *
5
+ * This file is part of wolfSSL.
6
+ *
7
+ * wolfSSL is free software; you can redistribute it and/or modify
8
+ * it under the terms of the GNU General Public License as published by
9
+ * the Free Software Foundation; either version 3 of the License, or
10
+ * (at your option) any later version.
11
+ *
12
+ * wolfSSL is distributed in the hope that it will be useful,
13
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ * GNU General Public License for more details.
16
+ *
17
+ * You should have received a copy of the GNU General Public License
18
+ * along with this program; if not, write to the Free Software
19
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
20
+ */
21
+
22
+ /*!
23
+ \file wolfssl/wolfcrypt/ecc.h
24
+ */
25
+
26
+
27
+ #ifndef WOLF_CRYPT_ECC_H
28
+ #define WOLF_CRYPT_ECC_H
29
+
30
+ #include <wolfssl/wolfcrypt/types.h>
31
+
32
+ #ifdef HAVE_ECC
33
+
34
+ #if FIPS_VERSION3_GE(2,0,0)
35
+ #include <wolfssl/wolfcrypt/fips.h>
36
+ #endif /* HAVE_FIPS_VERSION >= 2 */
37
+
38
+ #include <wolfssl/wolfcrypt/wolfmath.h>
39
+ #include <wolfssl/wolfcrypt/random.h>
40
+
41
+ #ifdef HAVE_X963_KDF
42
+ #include <wolfssl/wolfcrypt/hash.h>
43
+ #endif
44
+
45
+ #ifdef WOLFSSL_ASYNC_CRYPT
46
+ #include <wolfssl/wolfcrypt/async.h>
47
+ #ifdef WOLFSSL_CERT_GEN
48
+ #include <wolfssl/wolfcrypt/asn.h>
49
+ #endif
50
+ #endif
51
+
52
+ #if defined(WOLFSSL_ATECC508A) || defined(WOLFSSL_ATECC608A)
53
+ #include <wolfssl/wolfcrypt/port/atmel/atmel.h>
54
+ #endif /* WOLFSSL_ATECC508A */
55
+
56
+ #if defined(WOLFSSL_CRYPTOCELL)
57
+ #include <wolfssl/wolfcrypt/port/arm/cryptoCell.h>
58
+ #endif
59
+
60
+ #ifdef WOLFSSL_SILABS_SE_ACCEL
61
+ #include <wolfssl/wolfcrypt/port/silabs/silabs_ecc.h>
62
+ #endif
63
+
64
+ #if defined(WOLFSSL_KCAPI_ECC)
65
+ #include <wolfssl/wolfcrypt/port/kcapi/kcapi_ecc.h>
66
+ #endif
67
+
68
+ #ifdef WOLFSSL_SE050
69
+ #include <wolfssl/wolfcrypt/port/nxp/se050_port.h>
70
+ #endif
71
+
72
+ #if defined(WOLFSSL_XILINX_CRYPT_VERSAL)
73
+ #include <wolfssl/wolfcrypt/port/xilinx/xil-versal-glue.h>
74
+ #endif
75
+
76
+ #ifdef WOLFSSL_HAVE_SP_ECC
77
+ #include <wolfssl/wolfcrypt/sp_int.h>
78
+ #endif
79
+
80
+
81
+ #ifdef __cplusplus
82
+ extern "C" {
83
+ #endif
84
+
85
+ #if FIPS_VERSION3_GE(6,0,0)
86
+ extern const unsigned int wolfCrypt_FIPS_ecc_ro_sanity[2];
87
+ WOLFSSL_LOCAL int wolfCrypt_FIPS_ECC_sanity(void);
88
+ #endif
89
+
90
+ /* Enable curve B parameter if needed */
91
+ #if defined(HAVE_COMP_KEY) || defined(ECC_CACHE_CURVE)
92
+ #ifndef USE_ECC_B_PARAM /* Allow someone to force enable */
93
+ #define USE_ECC_B_PARAM
94
+ #endif
95
+ #endif
96
+
97
+
98
+ /* Use this as the key->idx if a custom ecc_set is used for key->dp */
99
+ #define ECC_CUSTOM_IDX (-1)
100
+
101
+
102
+ /* Determine max ECC bits based on enabled curves */
103
+ #if defined(WOLFCRYPT_HAVE_SAKKE)
104
+ #define MAX_ECC_BITS_NEEDED 1024
105
+ #elif defined(HAVE_ECC521) || defined(HAVE_ALL_CURVES)
106
+ #define MAX_ECC_BITS_NEEDED 521
107
+ #elif defined(HAVE_ECC512)
108
+ #define MAX_ECC_BITS_NEEDED 512
109
+ #elif defined(HAVE_ECC384)
110
+ #define MAX_ECC_BITS_NEEDED 384
111
+ #elif defined(HAVE_ECC320)
112
+ #define MAX_ECC_BITS_NEEDED 320
113
+ #elif !defined(NO_ECC256) || defined(WOLFSSL_SM2)
114
+ #define MAX_ECC_BITS_NEEDED 256
115
+ #elif defined(HAVE_ECC239)
116
+ #define MAX_ECC_BITS_NEEDED 239
117
+ #elif defined(HAVE_ECC224)
118
+ #define MAX_ECC_BITS_NEEDED 224
119
+ #elif defined(HAVE_ECC192)
120
+ #define MAX_ECC_BITS_NEEDED 192
121
+ #elif defined(HAVE_ECC160)
122
+ #define MAX_ECC_BITS_NEEDED 160
123
+ #elif defined(HAVE_ECC128)
124
+ #define MAX_ECC_BITS_NEEDED 128
125
+ #elif defined(HAVE_ECC112)
126
+ #define MAX_ECC_BITS_NEEDED 112
127
+ #endif
128
+
129
+ #ifndef MAX_ECC_BITS
130
+ #define MAX_ECC_BITS MAX_ECC_BITS_NEEDED
131
+ #else
132
+ #if MAX_ECC_BITS_NEEDED > MAX_ECC_BITS
133
+ #error configured MAX_ECC_BITS is less than required by enabled curves.
134
+ #endif
135
+ #endif
136
+
137
+ #if FIPS_VERSION3_GE(6,0,0)
138
+ #define WC_ECC_FIPS_SIG_MIN 224
139
+ #define WC_ECC_FIPS_GEN_MIN (WC_ECC_FIPS_SIG_MIN/8)
140
+ #endif
141
+
142
+ #ifdef WOLFSSL_SM2
143
+ #define WOLFSSL_SM2_KEY_BITS 256
144
+ #endif
145
+
146
+ /* calculate max ECC bytes */
147
+ #if ((MAX_ECC_BITS * 2) % 8) == 0
148
+ #define MAX_ECC_BYTES (MAX_ECC_BITS / 8)
149
+ #else
150
+ /* add byte if not aligned */
151
+ #define MAX_ECC_BYTES ((MAX_ECC_BITS / 8) + 1)
152
+ #endif
153
+
154
+ #ifndef ECC_MAX_PAD_SZ
155
+ /* ECC maximum padding size (when MSB is set extra byte required for R and S) */
156
+ #define ECC_MAX_PAD_SZ 2
157
+ #endif
158
+
159
+ enum {
160
+ ECC_PUBLICKEY = 1,
161
+ ECC_PRIVATEKEY = 2,
162
+ ECC_PRIVATEKEY_ONLY = 3,
163
+ ECC_MAXNAME = 16, /* MAX CURVE NAME LENGTH */
164
+ SIG_HEADER_SZ = 7, /* ECC signature header size (30 81 87 02 42 [R] 02 42 [S]) */
165
+ ECC_BUFSIZE = 257, /* for exported keys temp buffer */
166
+ ECC_MINSIZE = ECC_MIN_KEY_SZ/8, /* MIN Private Key size */
167
+ #ifdef WOLFCRYPT_HAVE_SAKKE
168
+ ECC_MAXSIZE = 128, /* MAX Private Key size */
169
+ ECC_MAXSIZE_GEN = 128, /* MAX Buffer size required when generating ECC keys*/
170
+ #else
171
+ ECC_MAXSIZE = 66, /* MAX Private Key size */
172
+ ECC_MAXSIZE_GEN = 74, /* MAX Buffer size required when generating ECC keys*/
173
+ #endif
174
+ ECC_MAX_OID_LEN = 16,
175
+ ECC_MAX_SIG_SIZE= ((MAX_ECC_BYTES * 2) + ECC_MAX_PAD_SZ + SIG_HEADER_SZ),
176
+
177
+ /* max crypto hardware size */
178
+ #if defined(WOLFSSL_ATECC508A) || defined(WOLFSSL_ATECC608A)
179
+ ECC_MAX_CRYPTO_HW_SIZE = ATECC_KEY_SIZE, /* from port/atmel/atmel.h */
180
+ ECC_MAX_CRYPTO_HW_PUBKEY_SIZE = (ATECC_KEY_SIZE*2),
181
+ #elif defined(PLUTON_CRYPTO_ECC)
182
+ ECC_MAX_CRYPTO_HW_SIZE = 32,
183
+ #elif defined(WOLFSSL_SILABS_SE_ACCEL)
184
+ #if defined(_SILICON_LABS_SECURITY_FEATURE) && \
185
+ (_SILICON_LABS_SECURITY_FEATURE == \
186
+ _SILICON_LABS_SECURITY_FEATURE_VAULT) && \
187
+ !defined(_SILICON_LABS_32B_SERIES_3_CONFIG_301)
188
+ ECC_MAX_CRYPTO_HW_SIZE = 66, /* up to 521 bit curves */
189
+ #else
190
+ ECC_MAX_CRYPTO_HW_SIZE = 32,
191
+ #endif
192
+ #elif defined(WOLFSSL_CRYPTOCELL)
193
+ #ifndef CRYPTOCELL_KEY_SIZE
194
+ CRYPTOCELL_KEY_SIZE = ECC_MAXSIZE,
195
+ #endif
196
+ ECC_MAX_CRYPTO_HW_SIZE = CRYPTOCELL_KEY_SIZE,
197
+ #elif defined(WOLFSSL_SE050)
198
+ ECC_MAX_CRYPTO_HW_SIZE = 66,
199
+ #elif defined(WOLFSSL_XILINX_CRYPT_VERSAL)
200
+ ECC_MAX_CRYPTO_HW_SIZE = MAX_ECC_BYTES,
201
+ #endif
202
+
203
+
204
+ /* point compression type */
205
+ ECC_POINT_COMP_EVEN = 0x02,
206
+ ECC_POINT_COMP_ODD = 0x03,
207
+ ECC_POINT_UNCOMP = 0x04,
208
+
209
+ /* Shamir's dual add constants */
210
+ SHAMIR_PRECOMP_SZ = 16,
211
+
212
+ #ifdef WOLF_PRIVATE_KEY_ID
213
+ ECC_MAX_ID_LEN = 32,
214
+ ECC_MAX_LABEL_LEN = 32,
215
+ #endif
216
+
217
+ WOLF_ENUM_DUMMY_LAST_ELEMENT(ECC)
218
+ };
219
+
220
+ #endif /* HAVE_ECC */
221
+
222
+ #if defined(HAVE_ECC) || defined(HAVE_CURVE25519) || \
223
+ defined(HAVE_CURVE448) || defined(WOLFCRYPT_HAVE_SAKKE)
224
+ /* Curve Types */
225
+ enum ecc_curve_ids {
226
+ ECC_CURVE_INVALID = -1,
227
+ ECC_CURVE_DEF = 0, /* NIST or SECP */
228
+
229
+ /* NIST Prime Curves */
230
+ ECC_SECP192R1, /* 1 */
231
+ ECC_PRIME192V2,
232
+ ECC_PRIME192V3,
233
+ ECC_PRIME239V1,
234
+ ECC_PRIME239V2,
235
+ ECC_PRIME239V3,
236
+ ECC_SECP256R1, /* 7 */
237
+
238
+ /* SECP Curves */
239
+ ECC_SECP112R1,
240
+ ECC_SECP112R2,
241
+ ECC_SECP128R1,
242
+ ECC_SECP128R2,
243
+ ECC_SECP160R1,
244
+ ECC_SECP160R2,
245
+ ECC_SECP224R1, /* 14 */
246
+ ECC_SECP384R1, /* 15 */
247
+ ECC_SECP521R1, /* 16 */
248
+
249
+ /* Koblitz */
250
+ ECC_SECP160K1,
251
+ ECC_SECP192K1,
252
+ ECC_SECP224K1,
253
+ ECC_SECP256K1,
254
+
255
+ /* Brainpool Curves */
256
+ ECC_BRAINPOOLP160R1,
257
+ ECC_BRAINPOOLP192R1,
258
+ ECC_BRAINPOOLP224R1,
259
+ ECC_BRAINPOOLP256R1,
260
+ ECC_BRAINPOOLP320R1,
261
+ ECC_BRAINPOOLP384R1,
262
+ ECC_BRAINPOOLP512R1,
263
+
264
+ /* SM2 */
265
+ ECC_SM2P256V1,
266
+
267
+ /* Twisted Edwards Curves */
268
+ #ifdef HAVE_CURVE25519
269
+ ECC_X25519,
270
+ #endif
271
+ #ifdef HAVE_CURVE448
272
+ ECC_X448,
273
+ #endif
274
+ #ifdef WOLFCRYPT_HAVE_SAKKE
275
+ ECC_SAKKE_1,
276
+ #endif
277
+
278
+ #ifdef WOLFSSL_CUSTOM_CURVES
279
+ ECC_CURVE_CUSTOM,
280
+ #endif
281
+ ECC_CURVE_MAX
282
+ };
283
+ typedef enum ecc_curve_ids ecc_curve_id;
284
+ #endif
285
+
286
+ #ifdef HAVE_ECC
287
+
288
+ #ifdef HAVE_OID_ENCODING
289
+ typedef word16 ecc_oid_t;
290
+ #else
291
+ typedef byte ecc_oid_t;
292
+ /* OID encoded with ASN scheme:
293
+ first element = (oid[0] * 40) + oid[1]
294
+ if any element > 127 then MSB 0x80 indicates additional byte */
295
+ #endif
296
+
297
+
298
+ #if !defined(WOLFSSL_ECC_CURVE_STATIC) && defined(USE_WINDOWS_API) && \
299
+ !defined(__WATCOMC__)
300
+ /* MSC does something different with the pointers to the arrays than GCC,
301
+ * and it causes the FIPS checksum to fail. In the case of windows builds,
302
+ * store everything as arrays instead of pointers to strings. */
303
+
304
+ #define WOLFSSL_ECC_CURVE_STATIC
305
+ #endif
306
+
307
+ /* ECC set type defined a GF(p) curve */
308
+ #ifndef WOLFSSL_ECC_CURVE_STATIC
309
+ struct ecc_set_type {
310
+ int size; /* The size of the curve in octets */
311
+ int id; /* id of this curve */
312
+ const char* name; /* name of this curve */
313
+ const char* prime; /* prime that defines the field, curve is in (hex) */
314
+ const char* Af; /* fields A param (hex) */
315
+ const char* Bf; /* fields B param (hex) */
316
+ const char* order; /* order of the curve (hex) */
317
+ const char* Gx; /* x coordinate of the base point on curve (hex) */
318
+ const char* Gy; /* y coordinate of the base point on curve (hex) */
319
+ const ecc_oid_t* oid;
320
+ word32 oidSz;
321
+ word32 oidSum; /* sum of encoded OID bytes */
322
+ int cofactor;
323
+ };
324
+ #else
325
+ #define MAX_ECC_NAME 16
326
+ #define MAX_ECC_STRING ((MAX_ECC_BYTES * 2) + 2)
327
+ /* The values are stored as text strings. */
328
+
329
+ struct ecc_set_type {
330
+ int size; /* The size of the curve in octets */
331
+ int id; /* id of this curve */
332
+ char name[MAX_ECC_NAME]; /* name of this curve */
333
+ char prime[MAX_ECC_STRING]; /* prime that defines the field, curve is in (hex) */
334
+ char Af[MAX_ECC_STRING]; /* fields A param (hex) */
335
+ char Bf[MAX_ECC_STRING]; /* fields B param (hex) */
336
+ char order[MAX_ECC_STRING]; /* order of the curve (hex) */
337
+ char Gx[MAX_ECC_STRING]; /* x coordinate of the base point on curve (hex) */
338
+ char Gy[MAX_ECC_STRING]; /* y coordinate of the base point on curve (hex) */
339
+ ecc_oid_t oid[10];
340
+ word32 oidSz;
341
+ word32 oidSum; /* sum of encoded OID bytes */
342
+ int cofactor;
343
+ };
344
+ #endif
345
+
346
+
347
+ #ifdef ALT_ECC_SIZE
348
+
349
+ /* Note on ALT_ECC_SIZE:
350
+ * The fast math code uses an array of a fixed size to store the big integers.
351
+ * By default, the array is big enough for RSA keys. There is a size,
352
+ * FP_MAX_BITS which can be used to make the array smaller when one wants ECC
353
+ * but not RSA. Some people want fast math sized for both RSA and ECC, where
354
+ * ECC won't use as much as RSA. The flag ALT_ECC_SIZE switches in an alternate
355
+ * ecc_point structure that uses an alternate fp_int that has a shorter array
356
+ * of fp_digits.
357
+ *
358
+ * Now, without ALT_ECC_SIZE, the ecc_point has three single item arrays of
359
+ * mp_ints for the components of the point. With ALT_ECC_SIZE, the components
360
+ * of the point are pointers that are set to each of a three item array of
361
+ * alt_fp_ints. While an mp_int will have 4096 bits of digit inside the
362
+ * structure, the alt_fp_int will only have 512 bits for ECC 256-bit and
363
+ * 1056-bits for ECC 521-bit. A size value was added in the ALT case, as well,
364
+ * and is set by mp_init() and alt_fp_init(). The functions fp_zero() and
365
+ * fp_copy() use the size parameter. An int needs to be initialized before
366
+ * using it instead of just fp_zeroing it, the init will call zero. The
367
+ * FP_MAX_BITS_ECC defaults to calculating based on MAX_ECC_BITS, but
368
+ * can be set to change the number of bits used in the alternate FP_INT.
369
+ *
370
+ * The ALT_ECC_SIZE option only applies to stack based fast math USE_FAST_MATH.
371
+ */
372
+
373
+ #if defined(USE_INTEGER_HEAP_MATH)
374
+ #error Cannot use integer math with ALT_ECC_SIZE
375
+ #endif
376
+ #ifdef WOLFSSL_NO_MALLOC
377
+ #error ALT_ECC_SIZE cannot be used with no malloc (WOLFSSL_NO_MALLOC)
378
+ #endif
379
+
380
+ #ifdef USE_FAST_MATH
381
+
382
+ /* determine max bits required for ECC math */
383
+ #ifndef FP_MAX_BITS_ECC
384
+ /* max bits rounded up by 8 then doubled */
385
+ /* (ROUND8(MAX_ECC_BITS) * 2) */
386
+ #define FP_MAX_BITS_ECC (2 * \
387
+ ((MAX_ECC_BITS + DIGIT_BIT - 1) / DIGIT_BIT) * DIGIT_BIT)
388
+
389
+ /* Note: For ECC verify only FP_MAX_BITS_ECC can be reduced to:
390
+ ROUND8(MAX_ECC_BITS) + ROUND8(DIGIT_BIT) */
391
+ #endif
392
+
393
+ /* verify alignment */
394
+ #if CHAR_BIT == 0
395
+ #error CHAR_BIT must be nonzero
396
+ #endif
397
+ #if FP_MAX_BITS_ECC % CHAR_BIT
398
+ #error FP_MAX_BITS_ECC must be a multiple of CHAR_BIT
399
+ #endif
400
+
401
+ /* determine buffer size */
402
+ /* Add one to accommodate extra digit used by sp_mul(), sp_mulmod(), sp_sqr(), and sp_sqrmod(). */
403
+ #define FP_SIZE_ECC ((FP_MAX_BITS_ECC/DIGIT_BIT) + 1)
404
+
405
+
406
+ /* This needs to match the size of the fp_int struct, except the
407
+ * fp_digit array will be shorter. */
408
+ typedef struct alt_fp_int {
409
+ int used, sign, size;
410
+ mp_digit dp[FP_SIZE_ECC];
411
+ } alt_fp_int;
412
+
413
+ #else
414
+
415
+ #ifdef FP_MAX_BITS_ECC
416
+ #define SP_INT_BITS_ECC (FP_MAX_BITS_ECC / 2)
417
+ #elif SP_INT_BITS < MAX_ECC_BITS
418
+ #define SP_INT_BITS_ECC SP_INT_BITS
419
+ #else
420
+ #define SP_INT_BITS_ECC MAX_ECC_BITS
421
+ #endif
422
+
423
+ #define SP_INT_DIGITS_ECC \
424
+ (((SP_INT_BITS_ECC + SP_WORD_SIZE - 1) / SP_WORD_SIZE) * 2 + 1)
425
+
426
+ #define FP_SIZE_ECC SP_INT_DIGITS_ECC
427
+
428
+ typedef struct alt_fp_int {
429
+ /** Number of words that contain data. */
430
+ unsigned int used;
431
+ /** Maximum number of words in data. */
432
+ unsigned int size;
433
+ #ifdef WOLFSSL_SP_INT_NEGATIVE
434
+ /** Indicates whether number is 0/positive or negative. */
435
+ unsigned int sign;
436
+ #endif
437
+ #ifdef HAVE_WOLF_BIGINT
438
+ /** Unsigned binary (big endian) representation of number. */
439
+ struct WC_BIGINT raw;
440
+ #endif
441
+ /** Data of number. */
442
+ sp_int_digit dp[SP_INT_DIGITS_ECC];
443
+ } alt_fp_int;
444
+
445
+ #endif
446
+ #endif /* ALT_ECC_SIZE */
447
+
448
+ #ifndef WC_ECCKEY_TYPE_DEFINED
449
+ typedef struct ecc_key ecc_key;
450
+ #define WC_ECCKEY_TYPE_DEFINED
451
+ #endif
452
+
453
+ #ifndef WC_ECCPOINT_TYPE_DEFINED
454
+ typedef struct ecc_point ecc_point;
455
+ #define WC_ECCPOINT_TYPE_DEFINED
456
+ #endif
457
+
458
+ #ifndef WC_ECCSET_TYPE_DEFINED
459
+ typedef struct ecc_set_type ecc_set_type;
460
+ #define WC_ECCSET_TYPE_DEFINED
461
+ #endif
462
+
463
+ /* A point on an ECC curve, stored in Jacobian format such that (x,y,z) =>
464
+ (x/z^2, y/z^3, 1) when interpreted as affine */
465
+ struct ecc_point {
466
+ #ifndef ALT_ECC_SIZE
467
+ mp_int x[1]; /* The x coordinate */
468
+ mp_int y[1]; /* The y coordinate */
469
+ mp_int z[1]; /* The z coordinate */
470
+ #else
471
+ mp_int* x; /* The x coordinate */
472
+ mp_int* y; /* The y coordinate */
473
+ mp_int* z; /* The z coordinate */
474
+ alt_fp_int xyz[3];
475
+ #endif
476
+ #if defined(WOLFSSL_SMALL_STACK_CACHE) && !defined(WOLFSSL_ECC_NO_SMALL_STACK)
477
+ ecc_key* key;
478
+ #endif
479
+ WC_BITFIELD isAllocated:1;
480
+ };
481
+
482
+ /* ECC Flags */
483
+ enum {
484
+ WC_ECC_FLAG_NONE = 0x00,
485
+ WC_ECC_FLAG_COFACTOR = 0x01,
486
+ WC_ECC_FLAG_DEC_SIGN = 0x02
487
+ };
488
+
489
+ /* ECC non-blocking */
490
+ #ifdef WC_ECC_NONBLOCK
491
+ typedef struct ecc_nb_ctx {
492
+ #if defined(WOLFSSL_HAVE_SP_ECC) && defined(WOLFSSL_SP_NONBLOCK)
493
+ sp_ecc_ctx_t sp_ctx;
494
+ #else
495
+ /* build configuration not supported */
496
+ #error ECC non-blocking only supports SP (--enable-sp=nonblock)
497
+ #endif
498
+ } ecc_nb_ctx_t;
499
+ #endif /* WC_ECC_NONBLOCK */
500
+
501
+
502
+ /* An ECC Key */
503
+ struct ecc_key {
504
+ int type; /* Public or Private */
505
+ int idx; /* Index into the ecc_sets[] for the parameters of
506
+ this curve if -1, this key is using user supplied
507
+ curve in dp */
508
+ int state;
509
+ word32 flags;
510
+ const ecc_set_type* dp; /* domain parameters, either points to NIST
511
+ curves (idx >= 0) or user supplied */
512
+ #ifdef WOLFSSL_CUSTOM_CURVES
513
+ int deallocSet;
514
+ #endif
515
+ void* heap; /* heap hint */
516
+ ecc_point pubkey; /* public key */
517
+ #ifndef ALT_ECC_SIZE
518
+ mp_int k[1]; /* private key */
519
+ #else
520
+ mp_int* k;
521
+ alt_fp_int ka[1];
522
+ #endif
523
+ #ifdef WOLFSSL_ECC_BLIND_K
524
+ #ifndef ALT_ECC_SIZE
525
+ mp_int kb[1];
526
+ mp_int ku[1];
527
+ #else
528
+ mp_int* kb;
529
+ mp_int* ku;
530
+ alt_fp_int kba[1];
531
+ alt_fp_int kua[1];
532
+ #endif
533
+ #endif
534
+
535
+ #ifdef WOLFSSL_CAAM
536
+ word32 blackKey; /* address of key encrypted and in secure memory */
537
+ word32 securePubKey; /* address of public key in secure memory */
538
+ int partNum; /* partition number*/
539
+ #endif
540
+ #ifdef WOLFSSL_SE050
541
+ word32 keyId;
542
+ byte keyIdSet;
543
+ #endif
544
+ #if defined(WOLFSSL_ATECC508A) || defined(WOLFSSL_ATECC608A)
545
+ int slot; /* Key Slot Number (-1 unknown) */
546
+ byte pubkey_raw[ECC_MAX_CRYPTO_HW_PUBKEY_SIZE];
547
+ #endif
548
+ #if defined(PLUTON_CRYPTO_ECC) || defined(WOLF_CRYPTO_CB)
549
+ void* devCtx;
550
+ int devId;
551
+ #endif
552
+ #ifdef WOLFSSL_SILABS_SE_ACCEL
553
+ sl_se_command_context_t cmd_ctx;
554
+ sl_se_key_descriptor_t key;
555
+ /* Used for SiLabs "plaintext" with public X, public Y, and
556
+ * private D concatenated. These are respectively at offset `0`,
557
+ * offset `keysize`, and offset `2 * keysize`.
558
+ */
559
+ byte key_raw[3 * ECC_MAX_CRYPTO_HW_SIZE];
560
+ #endif
561
+ #ifdef WOLFSSL_MAXQ10XX_CRYPTO
562
+ maxq_ecc_t maxq_ctx;
563
+ #endif
564
+ #ifdef WOLFSSL_KCAPI_ECC
565
+ struct kcapi_handle* handle;
566
+ byte pubkey_raw[MAX_ECC_BYTES * 2];
567
+ #endif
568
+ #if defined(WOLFSSL_XILINX_CRYPT_VERSAL)
569
+ wc_Xsecure xSec;
570
+ byte keyRaw[3 * ECC_MAX_CRYPTO_HW_SIZE] ALIGN32;
571
+ byte* privKey;
572
+ #endif
573
+ #ifdef WOLFSSL_ASYNC_CRYPT
574
+ mp_int* r; /* sign/verify temps */
575
+ mp_int* s;
576
+ WC_ASYNC_DEV asyncDev;
577
+ #ifdef HAVE_CAVIUM_V
578
+ mp_int* e; /* Sign, Verify and Shared Secret */
579
+ mp_int* signK;
580
+ #endif
581
+ #ifdef WOLFSSL_CERT_GEN
582
+ CertSignCtx certSignCtx; /* context info for cert sign (MakeSignature) */
583
+ #endif
584
+ #endif /* WOLFSSL_ASYNC_CRYPT */
585
+ #ifdef WOLF_PRIVATE_KEY_ID
586
+ byte id[ECC_MAX_ID_LEN];
587
+ int idLen;
588
+ char label[ECC_MAX_LABEL_LEN];
589
+ int labelLen;
590
+ #endif
591
+ #if defined(WOLFSSL_CRYPTOCELL)
592
+ ecc_context_t ctx;
593
+ #endif
594
+
595
+ #if defined(WOLFSSL_ECDSA_SET_K) || defined(WOLFSSL_ECDSA_SET_K_ONE_LOOP) || \
596
+ defined(WOLFSSL_ECDSA_DETERMINISTIC_K) || \
597
+ defined(WOLFSSL_ECDSA_DETERMINISTIC_K_VARIANT)
598
+ #ifndef WOLFSSL_NO_MALLOC
599
+ mp_int* sign_k;
600
+ #else
601
+ mp_int sign_k[1];
602
+ WC_BITFIELD sign_k_set:1;
603
+ #endif
604
+ #endif
605
+ #if defined(WOLFSSL_ECDSA_DETERMINISTIC_K) || \
606
+ defined(WOLFSSL_ECDSA_DETERMINISTIC_K_VARIANT)
607
+ WC_BITFIELD deterministic:1;
608
+ enum wc_HashType hashType;
609
+ #endif
610
+
611
+ #if defined(WOLFSSL_SMALL_STACK_CACHE) && !defined(WOLFSSL_ECC_NO_SMALL_STACK)
612
+ mp_int* t1;
613
+ mp_int* t2;
614
+ #ifdef ALT_ECC_SIZE
615
+ mp_int* x;
616
+ mp_int* y;
617
+ mp_int* z;
618
+ #endif
619
+ #endif
620
+
621
+ #ifdef WOLFSSL_DSP
622
+ remote_handle64 handle;
623
+ #endif
624
+ #ifdef ECC_TIMING_RESISTANT
625
+ WC_RNG* rng;
626
+ #endif
627
+ #ifdef WC_ECC_NONBLOCK
628
+ ecc_nb_ctx_t* nb_ctx;
629
+ #endif
630
+ };
631
+
632
+ #ifndef WOLFSSL_ECC_BLIND_K
633
+ #define ecc_get_k(key) (key)->k
634
+ #define ecc_blind_k(key, b) (void)b
635
+ #define ecc_blind_k_rng(key, rng) 0
636
+
637
+ #define wc_ecc_key_get_priv(key) (key)->k
638
+ #else
639
+ mp_int* ecc_get_k(ecc_key* key);
640
+ void ecc_blind_k(ecc_key* key, mp_int* b);
641
+ int ecc_blind_k_rng(ecc_key* key, WC_RNG* rng);
642
+
643
+ WOLFSSL_API mp_int* wc_ecc_key_get_priv(ecc_key* key);
644
+ #endif
645
+
646
+ #define WOLFSSL_HAVE_ECC_KEY_GET_PRIV
647
+
648
+
649
+ WOLFSSL_ABI WOLFSSL_API ecc_key* wc_ecc_key_new(void* heap);
650
+ WOLFSSL_ABI WOLFSSL_API void wc_ecc_key_free(ecc_key* key);
651
+
652
+
653
+ /* ECC predefined curve sets */
654
+ #if defined(HAVE_FIPS) && FIPS_VERSION3_LT(6,0,0)
655
+ extern const ecc_set_type ecc_sets[];
656
+ extern const size_t ecc_sets_count;
657
+ #else
658
+ WOLFSSL_API const ecc_set_type *wc_ecc_get_sets(void);
659
+ WOLFSSL_API size_t wc_ecc_get_sets_count(void);
660
+ #define ecc_sets wc_ecc_get_sets()
661
+ #define ecc_sets_count wc_ecc_get_sets_count()
662
+ #endif
663
+
664
+ WOLFSSL_API
665
+ const char* wc_ecc_get_name(int curve_id);
666
+
667
+ #ifdef WOLFSSL_PUBLIC_ECC_ADD_DBL
668
+ #define ECC_API WOLFSSL_API
669
+ #else
670
+ #define ECC_API WOLFSSL_LOCAL
671
+ #endif
672
+
673
+ ECC_API int ecc_mul2add(ecc_point* A, mp_int* kA,
674
+ ecc_point* B, mp_int* kB,
675
+ ecc_point* C, mp_int* a, mp_int* modulus, void* heap);
676
+
677
+ ECC_API int ecc_map(ecc_point* P, mp_int* modulus, mp_digit mp);
678
+ ECC_API int ecc_map_ex(ecc_point* P, mp_int* modulus, mp_digit mp, int ct);
679
+ ECC_API int ecc_projective_add_point(ecc_point* P, ecc_point* Q, ecc_point* R,
680
+ mp_int* a, mp_int* modulus, mp_digit mp);
681
+ ECC_API int ecc_projective_dbl_point(ecc_point* P, ecc_point* R, mp_int* a,
682
+ mp_int* modulus, mp_digit mp);
683
+
684
+ ECC_API int ecc_projective_add_point_safe(ecc_point* A, ecc_point* B,
685
+ ecc_point* R, mp_int* a, mp_int* modulus, mp_digit mp, int* infinity);
686
+ ECC_API int ecc_projective_dbl_point_safe(ecc_point* P, ecc_point* R, mp_int* a,
687
+ mp_int* modulus, mp_digit mp);
688
+
689
+ WOLFSSL_ABI WOLFSSL_API
690
+ int wc_ecc_make_key(WC_RNG* rng, int keysize, ecc_key* key);
691
+ WOLFSSL_ABI WOLFSSL_API
692
+ int wc_ecc_make_key_ex(WC_RNG* rng, int keysize, ecc_key* key, int curve_id);
693
+ WOLFSSL_API
694
+ int wc_ecc_make_key_ex2(WC_RNG* rng, int keysize, ecc_key* key, int curve_id,
695
+ int flags);
696
+ WOLFSSL_API
697
+ int wc_ecc_make_pub(ecc_key* key, ecc_point* pubOut);
698
+ WOLFSSL_API
699
+ int wc_ecc_make_pub_ex(ecc_key* key, ecc_point* pubOut, WC_RNG* rng);
700
+ WOLFSSL_ABI WOLFSSL_API
701
+ int wc_ecc_check_key(ecc_key* key);
702
+ WOLFSSL_API
703
+ int wc_ecc_is_point(ecc_point* ecp, mp_int* a, mp_int* b, mp_int* prime);
704
+ WOLFSSL_API
705
+ int wc_ecc_get_generator(ecc_point* ecp, int curve_idx);
706
+
707
+ #ifdef HAVE_ECC_DHE
708
+ WOLFSSL_ABI WOLFSSL_API
709
+ int wc_ecc_shared_secret(ecc_key* private_key, ecc_key* public_key, byte* out,
710
+ word32* outlen);
711
+
712
+ WOLFSSL_API
713
+ int wc_ecc_shared_secret_ex(ecc_key* private_key, ecc_point* point,
714
+ byte* out, word32 *outlen);
715
+
716
+ /* Internal API for blocking ECDHE call */
717
+ WOLFSSL_LOCAL
718
+ int wc_ecc_shared_secret_gen_sync(ecc_key* private_key,
719
+ ecc_point* point, byte* out, word32* outlen);
720
+
721
+ #if !defined(WOLFSSL_ATECC508A) && !defined(WOLFSSL_ATECC608A) && \
722
+ !defined(PLUTON_CRYPTO_ECC) && !defined(WOLFSSL_CRYPTOCELL)
723
+ #define wc_ecc_shared_secret_ssh wc_ecc_shared_secret_ex /* For backwards compat */
724
+ #endif
725
+
726
+ #endif /* HAVE_ECC_DHE */
727
+
728
+ #ifdef HAVE_ECC_SIGN
729
+ WOLFSSL_ABI WOLFSSL_API
730
+ int wc_ecc_sign_hash(const byte* in, word32 inlen, byte* out, word32 *outlen,
731
+ WC_RNG* rng, ecc_key* key);
732
+ WOLFSSL_API
733
+ int wc_ecc_sign_hash_ex(const byte* in, word32 inlen, WC_RNG* rng,
734
+ ecc_key* key, mp_int *r, mp_int *s);
735
+ #if defined(WOLFSSL_ECDSA_DETERMINISTIC_K) || \
736
+ defined(WOLFSSL_ECDSA_DETERMINISTIC_K_VARIANT)
737
+ WOLFSSL_API
738
+ int wc_ecc_set_deterministic(ecc_key* key, byte flag);
739
+ WOLFSSL_API
740
+ int wc_ecc_set_deterministic_ex(ecc_key* key, byte flag,
741
+ enum wc_HashType hashType);
742
+ WOLFSSL_API
743
+ int wc_ecc_gen_deterministic_k(const byte* hash, word32 hashSz,
744
+ enum wc_HashType hashType, mp_int* priv, mp_int* k, mp_int* order,
745
+ void* heap);
746
+ #endif
747
+ #if defined(WOLFSSL_ECDSA_SET_K) || defined(WOLFSSL_ECDSA_SET_K_ONE_LOOP)
748
+ WOLFSSL_API
749
+ int wc_ecc_sign_set_k(const byte* k, word32 klen, ecc_key* key);
750
+ #endif
751
+ #endif /* HAVE_ECC_SIGN */
752
+
753
+ #ifdef HAVE_ECC_VERIFY
754
+ WOLFSSL_ABI WOLFSSL_API
755
+ int wc_ecc_verify_hash(const byte* sig, word32 siglen, const byte* hash,
756
+ word32 hashlen, int* res, ecc_key* key);
757
+ WOLFSSL_API
758
+ int wc_ecc_verify_hash_ex(mp_int *r, mp_int *s, const byte* hash,
759
+ word32 hashlen, int* res, ecc_key* key);
760
+ #endif /* HAVE_ECC_VERIFY */
761
+
762
+ WOLFSSL_ABI WOLFSSL_API
763
+ int wc_ecc_init(ecc_key* key);
764
+ WOLFSSL_ABI WOLFSSL_API
765
+ int wc_ecc_init_ex(ecc_key* key, void* heap, int devId);
766
+ #ifdef WOLF_PRIVATE_KEY_ID
767
+ WOLFSSL_API
768
+ int wc_ecc_init_id(ecc_key* key, unsigned char* id, int len, void* heap,
769
+ int devId);
770
+ WOLFSSL_API
771
+ int wc_ecc_init_label(ecc_key* key, const char* label, void* heap, int devId);
772
+ #endif
773
+ #ifdef WOLFSSL_CUSTOM_CURVES
774
+ WOLFSSL_LOCAL
775
+ void wc_ecc_free_curve(const ecc_set_type* curve, void* heap);
776
+ #endif
777
+ WOLFSSL_ABI WOLFSSL_API
778
+ int wc_ecc_free(ecc_key* key);
779
+ WOLFSSL_API
780
+ int wc_ecc_set_flags(ecc_key* key, word32 flags);
781
+ WOLFSSL_ABI WOLFSSL_API
782
+ void wc_ecc_fp_free(void);
783
+ WOLFSSL_API
784
+ void wc_ecc_fp_init(void);
785
+ WOLFSSL_API
786
+ int wc_ecc_set_rng(ecc_key* key, WC_RNG* rng);
787
+
788
+ WOLFSSL_API
789
+ int wc_ecc_set_curve(ecc_key* key, int keysize, int curve_id);
790
+
791
+ WOLFSSL_API
792
+ int wc_ecc_is_valid_idx(int n);
793
+ WOLFSSL_API
794
+ int wc_ecc_get_curve_idx(int curve_id);
795
+ WOLFSSL_API
796
+ int wc_ecc_get_curve_id(int curve_idx);
797
+ #define wc_ecc_get_curve_name_from_id wc_ecc_get_name
798
+ WOLFSSL_API
799
+ int wc_ecc_get_curve_size_from_id(int curve_id);
800
+
801
+ WOLFSSL_API
802
+ int wc_ecc_get_curve_idx_from_name(const char* curveName);
803
+ WOLFSSL_API
804
+ int wc_ecc_get_curve_size_from_name(const char* curveName);
805
+ WOLFSSL_API
806
+ int wc_ecc_get_curve_id_from_name(const char* curveName);
807
+ WOLFSSL_API
808
+ int wc_ecc_get_curve_id_from_params(int fieldSize,
809
+ const byte* prime, word32 primeSz, const byte* Af, word32 AfSz,
810
+ const byte* Bf, word32 BfSz, const byte* order, word32 orderSz,
811
+ const byte* Gx, word32 GxSz, const byte* Gy, word32 GySz, int cofactor);
812
+ WOLFSSL_API
813
+ int wc_ecc_get_curve_id_from_dp_params(const ecc_set_type* dp);
814
+
815
+ WOLFSSL_API
816
+ int wc_ecc_get_curve_id_from_oid(const byte* oid, word32 len);
817
+
818
+ WOLFSSL_API const ecc_set_type* wc_ecc_get_curve_params(int curve_idx);
819
+
820
+ WOLFSSL_API
821
+ ecc_point* wc_ecc_new_point(void);
822
+ WOLFSSL_API
823
+ ecc_point* wc_ecc_new_point_h(void* h);
824
+ WOLFSSL_API
825
+ void wc_ecc_del_point(ecc_point* p);
826
+ WOLFSSL_API
827
+ void wc_ecc_del_point_h(ecc_point* p, void* h);
828
+ WOLFSSL_API
829
+ void wc_ecc_forcezero_point(ecc_point* p);
830
+ WOLFSSL_API
831
+ int wc_ecc_copy_point(const ecc_point* p, ecc_point *r);
832
+ WOLFSSL_API
833
+ int wc_ecc_cmp_point(ecc_point* a, ecc_point *b);
834
+ WOLFSSL_API
835
+ int wc_ecc_point_is_at_infinity(ecc_point *p);
836
+ WOLFSSL_API
837
+ int wc_ecc_point_is_on_curve(ecc_point *p, int curve_idx);
838
+
839
+ #if !defined(WOLFSSL_ATECC508A) && !defined(WOLFSSL_ATECC608A)
840
+ WOLFSSL_API
841
+ int wc_ecc_mulmod(const mp_int* k, ecc_point *G, ecc_point *R,
842
+ mp_int* a, mp_int* modulus, int map);
843
+ ECC_API
844
+ int wc_ecc_mulmod_ex(const mp_int* k, ecc_point *G, ecc_point *R,
845
+ mp_int* a, mp_int* modulus, int map, void* heap);
846
+ ECC_API
847
+ int wc_ecc_mulmod_ex2(const mp_int* k, ecc_point *G, ecc_point *R, mp_int* a,
848
+ mp_int* modulus, mp_int* order, WC_RNG* rng, int map,
849
+ void* heap);
850
+ #endif /* !WOLFSSL_ATECC508A */
851
+
852
+
853
+ #ifdef HAVE_ECC_KEY_EXPORT
854
+ /* ASN key helpers */
855
+ WOLFSSL_ABI WOLFSSL_API
856
+ int wc_ecc_export_x963(ecc_key* key, byte* out, word32* outLen);
857
+ WOLFSSL_ABI WOLFSSL_API
858
+ int wc_ecc_export_x963_ex(ecc_key* key, byte* out, word32* outLen,
859
+ int compressed);
860
+ /* extended functionality with compressed option */
861
+ #endif /* HAVE_ECC_KEY_EXPORT */
862
+
863
+ #ifdef HAVE_ECC_KEY_IMPORT
864
+ WOLFSSL_ABI WOLFSSL_API
865
+ int wc_ecc_import_x963(const byte* in, word32 inLen, ecc_key* key);
866
+ WOLFSSL_API
867
+ int wc_ecc_import_x963_ex(const byte* in, word32 inLen, ecc_key* key,
868
+ int curve_id);
869
+ WOLFSSL_ABI WOLFSSL_API
870
+ int wc_ecc_import_private_key(const byte* priv, word32 privSz, const byte* pub,
871
+ word32 pubSz, ecc_key* key);
872
+ WOLFSSL_API
873
+ int wc_ecc_import_private_key_ex(const byte* priv, word32 privSz,
874
+ const byte* pub, word32 pubSz, ecc_key* key, int curve_id);
875
+ WOLFSSL_ABI WOLFSSL_API
876
+ int wc_ecc_rs_to_sig(const char* r, const char* s, byte* out, word32* outlen);
877
+ WOLFSSL_API
878
+ int wc_ecc_rs_raw_to_sig(const byte* r, word32 rSz, const byte* s, word32 sSz,
879
+ byte* out, word32* outlen);
880
+ WOLFSSL_API
881
+ int wc_ecc_sig_to_rs(const byte* sig, word32 sigLen, byte* r, word32* rLen,
882
+ byte* s, word32* sLen);
883
+ WOLFSSL_ABI WOLFSSL_API
884
+ int wc_ecc_import_raw(ecc_key* key, const char* qx, const char* qy,
885
+ const char* d, const char* curveName);
886
+ WOLFSSL_API
887
+ int wc_ecc_import_raw_ex(ecc_key* key, const char* qx, const char* qy,
888
+ const char* d, int curve_id);
889
+ WOLFSSL_API
890
+ int wc_ecc_import_unsigned(ecc_key* key, const byte* qx, const byte* qy,
891
+ const byte* d, int curve_id);
892
+ #endif /* HAVE_ECC_KEY_IMPORT */
893
+
894
+ #ifdef HAVE_ECC_KEY_EXPORT
895
+ WOLFSSL_API
896
+ int wc_ecc_export_ex(ecc_key* key, byte* qx, word32* qxLen,
897
+ byte* qy, word32* qyLen, byte* d, word32* dLen,
898
+ int encType);
899
+ WOLFSSL_ABI WOLFSSL_API
900
+ int wc_ecc_export_private_only(ecc_key* key, byte* out, word32* outLen);
901
+ WOLFSSL_API
902
+ int wc_ecc_export_public_raw(ecc_key* key, byte* qx, word32* qxLen,
903
+ byte* qy, word32* qyLen);
904
+ WOLFSSL_API
905
+ int wc_ecc_export_private_raw(ecc_key* key, byte* qx, word32* qxLen,
906
+ byte* qy, word32* qyLen, byte* d, word32* dLen);
907
+ #endif /* HAVE_ECC_KEY_EXPORT */
908
+
909
+ #ifdef HAVE_ECC_KEY_EXPORT
910
+ WOLFSSL_API
911
+ int wc_ecc_export_point_der_ex(const int curve_idx, ecc_point* point, byte* out,
912
+ word32* outLen, int compressed);
913
+ WOLFSSL_API
914
+ int wc_ecc_export_point_der(const int curve_idx, ecc_point* point,
915
+ byte* out, word32* outLen);
916
+ #ifdef HAVE_COMP_KEY
917
+ WOLFSSL_LOCAL
918
+ int wc_ecc_export_point_der_compressed(const int curve_idx, ecc_point* point,
919
+ byte* out, word32* outLen);
920
+ #endif /* HAVE_COMP_KEY */
921
+ #endif /* HAVE_ECC_KEY_EXPORT */
922
+
923
+
924
+ #ifdef HAVE_ECC_KEY_IMPORT
925
+ WOLFSSL_API
926
+ int wc_ecc_import_point_der_ex(const byte* in, word32 inLen,
927
+ const int curve_idx, ecc_point* point,
928
+ int shortKeySize);
929
+ WOLFSSL_API
930
+ int wc_ecc_import_point_der(const byte* in, word32 inLen, const int curve_idx,
931
+ ecc_point* point);
932
+ #endif /* HAVE_ECC_KEY_IMPORT */
933
+
934
+ /* size helper */
935
+ WOLFSSL_ABI WOLFSSL_API
936
+ int wc_ecc_size(ecc_key* key);
937
+ WOLFSSL_ABI WOLFSSL_API
938
+ int wc_ecc_sig_size_calc(int sz);
939
+ WOLFSSL_ABI WOLFSSL_API
940
+ int wc_ecc_sig_size(const ecc_key* key);
941
+
942
+ WOLFSSL_API
943
+ int wc_ecc_get_oid(word32 oidSum, const byte** oid, word32* oidSz);
944
+
945
+ #ifdef WOLFSSL_CUSTOM_CURVES
946
+ WOLFSSL_API
947
+ int wc_ecc_set_custom_curve(ecc_key* key, const ecc_set_type* dp);
948
+ #endif
949
+
950
+ #ifdef HAVE_ECC_ENCRYPT
951
+ /* ecc encrypt */
952
+
953
+ enum ecEncAlgo {
954
+ ecAES_128_CBC = 1, /* default */
955
+ ecAES_256_CBC = 2,
956
+ ecAES_128_CTR = 3,
957
+ ecAES_256_CTR = 4
958
+ };
959
+
960
+ enum ecKdfAlgo {
961
+ ecHKDF_SHA256 = 1, /* default */
962
+ ecHKDF_SHA1 = 2,
963
+ ecKDF_X963_SHA1 = 3,
964
+ ecKDF_X963_SHA256 = 4,
965
+ ecKDF_SHA1 = 5,
966
+ ecKDF_SHA256 = 6
967
+ };
968
+
969
+ enum ecMacAlgo {
970
+ ecHMAC_SHA256 = 1, /* default */
971
+ ecHMAC_SHA1 = 2
972
+ };
973
+
974
+ enum {
975
+ KEY_SIZE_128 = 16,
976
+ KEY_SIZE_256 = 32,
977
+ IV_SIZE_64 = 8,
978
+ IV_SIZE_128 = 16,
979
+ ECC_MAX_IV_SIZE = 16,
980
+ EXCHANGE_SALT_SZ = 16,
981
+ EXCHANGE_INFO_SZ = 23
982
+ };
983
+
984
+ enum ecFlags {
985
+ REQ_RESP_CLIENT = 1,
986
+ REQ_RESP_SERVER = 2
987
+ };
988
+
989
+ #ifndef WOLFSSL_ECIES_GEN_IV_SIZE
990
+ #define WOLFSSL_ECIES_GEN_IV_SIZE 12
991
+ #endif
992
+
993
+
994
+ typedef struct ecEncCtx ecEncCtx;
995
+
996
+ WOLFSSL_ABI WOLFSSL_API
997
+ ecEncCtx* wc_ecc_ctx_new(int flags, WC_RNG* rng);
998
+ WOLFSSL_API
999
+ ecEncCtx* wc_ecc_ctx_new_ex(int flags, WC_RNG* rng, void* heap);
1000
+ WOLFSSL_ABI WOLFSSL_API
1001
+ void wc_ecc_ctx_free(ecEncCtx* ctx);
1002
+ WOLFSSL_ABI WOLFSSL_API
1003
+ int wc_ecc_ctx_reset(ecEncCtx* ctx, WC_RNG* rng); /* reset for use again w/o alloc/free */
1004
+
1005
+ WOLFSSL_API
1006
+ int wc_ecc_ctx_set_algo(ecEncCtx* ctx, byte encAlgo, byte kdfAlgo,
1007
+ byte macAlgo);
1008
+ WOLFSSL_API
1009
+ const byte* wc_ecc_ctx_get_own_salt(ecEncCtx* ctx);
1010
+ WOLFSSL_API
1011
+ int wc_ecc_ctx_set_peer_salt(ecEncCtx* ctx, const byte* salt);
1012
+ WOLFSSL_API
1013
+ int wc_ecc_ctx_set_own_salt(ecEncCtx* ctx, const byte* salt, word32 sz);
1014
+ WOLFSSL_API
1015
+ int wc_ecc_ctx_set_kdf_salt(ecEncCtx* ctx, const byte* salt, word32 sz);
1016
+ WOLFSSL_API
1017
+ int wc_ecc_ctx_set_info(ecEncCtx* ctx, const byte* info, int sz);
1018
+
1019
+ WOLFSSL_ABI WOLFSSL_API
1020
+ int wc_ecc_encrypt(ecc_key* privKey, ecc_key* pubKey, const byte* msg,
1021
+ word32 msgSz, byte* out, word32* outSz, ecEncCtx* ctx);
1022
+ WOLFSSL_API
1023
+ int wc_ecc_encrypt_ex(ecc_key* privKey, ecc_key* pubKey, const byte* msg,
1024
+ word32 msgSz, byte* out, word32* outSz, ecEncCtx* ctx, int compressed);
1025
+ WOLFSSL_ABI WOLFSSL_API
1026
+ int wc_ecc_decrypt(ecc_key* privKey, ecc_key* pubKey, const byte* msg,
1027
+ word32 msgSz, byte* out, word32* outSz, ecEncCtx* ctx);
1028
+
1029
+ #endif /* HAVE_ECC_ENCRYPT */
1030
+
1031
+ #ifdef HAVE_X963_KDF
1032
+ WOLFSSL_API int wc_X963_KDF(enum wc_HashType type, const byte* secret,
1033
+ word32 secretSz, const byte* sinfo, word32 sinfoSz,
1034
+ byte* out, word32 outSz);
1035
+ #endif
1036
+
1037
+ #ifdef ECC_CACHE_CURVE
1038
+ WOLFSSL_API int wc_ecc_curve_cache_init(void);
1039
+ WOLFSSL_API void wc_ecc_curve_cache_free(void);
1040
+ #endif
1041
+
1042
+ #ifdef HAVE_OID_ENCODING
1043
+ WOLFSSL_LOCAL int wc_ecc_oid_cache_init(void);
1044
+ WOLFSSL_LOCAL void wc_ecc_oid_cache_free(void);
1045
+ #endif
1046
+
1047
+ WOLFSSL_API
1048
+ int wc_ecc_gen_k(WC_RNG* rng, int size, mp_int* k, mp_int* order);
1049
+
1050
+ #ifdef WOLFSSL_DSP
1051
+ WOLFSSL_API
1052
+ int wc_ecc_set_handle(ecc_key* key, remote_handle64 handle);
1053
+ WOLFSSL_LOCAL
1054
+ int sp_dsp_ecc_verify_256(remote_handle64 handle, const byte* hash, word32 hashLen, mp_int* pX,
1055
+ mp_int* pY, mp_int* pZ, mp_int* r, mp_int* sm, int* res, void* heap);
1056
+ #endif
1057
+
1058
+ #ifdef WOLFSSL_SE050
1059
+ WOLFSSL_API
1060
+ int wc_ecc_use_key_id(ecc_key* key, word32 keyId, word32 flags);
1061
+ WOLFSSL_API
1062
+ int wc_ecc_get_key_id(ecc_key* key, word32* keyId);
1063
+ #endif
1064
+
1065
+ #ifdef WC_ECC_NONBLOCK
1066
+ WOLFSSL_API int wc_ecc_set_nonblock(ecc_key *key, ecc_nb_ctx_t* ctx);
1067
+ #endif
1068
+
1069
+ #ifdef __cplusplus
1070
+ } /* extern "C" */
1071
+ #endif
1072
+
1073
+ #endif /* HAVE_ECC */
1074
+ #endif /* WOLF_CRYPT_ECC_H */