sakke.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. /*!
  2. \ingroup SAKKE_Setup
  3. */
  4. int wc_InitSakkeKey(SakkeKey* key, void* heap, int devId);
  5. /*!
  6. \ingroup SAKKE_Setup
  7. */
  8. int wc_InitSakkeKey_ex(SakkeKey* key, int keySize, int curveId,
  9. void* heap, int devId);
  10. /*!
  11. \ingroup SAKKE_Setup
  12. */
  13. void wc_FreeSakkeKey(SakkeKey* key);
  14. /*!
  15. \ingroup SAKKE_Setup
  16. */
  17. int wc_MakeSakkeKey(SakkeKey* key, WC_RNG* rng);
  18. /*!
  19. \ingroup SAKKE_Setup
  20. */
  21. int wc_MakeSakkePublicKey(SakkeKey* key, ecc_point* pub);
  22. /*!
  23. \ingroup SAKKE_RSK
  24. */
  25. int wc_MakeSakkeRsk(SakkeKey* key, const byte* id, word16 idSz,
  26. ecc_point* rsk);
  27. /*!
  28. \ingroup SAKKE_RSK
  29. */
  30. int wc_ValidateSakkeRsk(SakkeKey* key, const byte* id, word16 idSz,
  31. ecc_point* rsk, int* valid);
  32. /*!
  33. \ingroup SAKKE_RSK
  34. */
  35. int wc_GenerateSakkeRskTable(const SakkeKey* key,
  36. const ecc_point* rsk, byte* table, word32* len);
  37. /*!
  38. \ingroup SAKKE_Setup
  39. */
  40. int wc_ExportSakkeKey(SakkeKey* key, byte* data, word32* sz);
  41. /*!
  42. \ingroup SAKKE_Setup
  43. */
  44. int wc_ImportSakkeKey(SakkeKey* key, const byte* data, word32 sz);
  45. /*!
  46. \ingroup SAKKE_Setup
  47. */
  48. int wc_ExportSakkePrivateKey(SakkeKey* key, byte* data, word32* sz);
  49. /*!
  50. \ingroup SAKKE_Setup
  51. */
  52. int wc_ImportSakkePrivateKey(SakkeKey* key, const byte* data,
  53. word32 sz);
  54. /*!
  55. \ingroup SAKKE_RSK
  56. */
  57. int wc_EncodeSakkeRsk(const SakkeKey* key, ecc_point* rsk,
  58. byte* out, word32* sz, int raw);
  59. /*!
  60. \ingroup SAKKE_RSK
  61. */
  62. int wc_DecodeSakkeRsk(const SakkeKey* key, const byte* data,
  63. word32 sz, ecc_point* rsk);
  64. /*!
  65. \ingroup SAKKE_RSK
  66. */
  67. int wc_ImportSakkeRsk(SakkeKey* key, const byte* data, word32 sz);
  68. /*!
  69. \ingroup SAKKE_Setup
  70. */
  71. int wc_ExportSakkePublicKey(SakkeKey* key, byte* data,
  72. word32* sz, int raw);
  73. /*!
  74. \ingroup SAKKE_Setup
  75. */
  76. int wc_ImportSakkePublicKey(SakkeKey* key, const byte* data,
  77. word32 sz, int trusted);
  78. /*!
  79. \ingroup SAKKE_Operations
  80. */
  81. int wc_GetSakkeAuthSize(SakkeKey* key, word16* authSz);
  82. /*!
  83. \ingroup SAKKE_Setup
  84. */
  85. int wc_SetSakkeIdentity(SakkeKey* key, const byte* id, word16 idSz);
  86. /*!
  87. \ingroup SAKKE_Operations
  88. */
  89. int wc_MakeSakkePointI(SakkeKey* key, const byte* id, word16 idSz);
  90. /*!
  91. \ingroup SAKKE_Operations
  92. */
  93. int wc_GetSakkePointI(SakkeKey* key, byte* data, word32* sz);
  94. /*!
  95. \ingroup SAKKE_Operations
  96. */
  97. int wc_SetSakkePointI(SakkeKey* key, const byte* id, word16 idSz,
  98. const byte* data, word32 sz);
  99. /*!
  100. \ingroup SAKKE_Operations
  101. */
  102. int wc_GenerateSakkePointITable(SakkeKey* key, byte* table,
  103. word32* len);
  104. /*!
  105. \ingroup SAKKE_Operations
  106. */
  107. int wc_SetSakkePointITable(SakkeKey* key, byte* table, word32 len);
  108. /*!
  109. \ingroup SAKKE_Operations
  110. */
  111. int wc_ClearSakkePointITable(SakkeKey* key);
  112. /*!
  113. \ingroup SAKKE_Operations
  114. */
  115. int wc_MakeSakkeEncapsulatedSSV(SakkeKey* key,
  116. enum wc_HashType hashType, byte* ssv, word16 ssvSz, byte* auth,
  117. word16* authSz);
  118. /*!
  119. \ingroup SAKKE_Operations
  120. */
  121. int wc_GenerateSakkeSSV(SakkeKey* key, WC_RNG* rng, byte* ssv,
  122. word16* ssvSz);
  123. /*!
  124. \ingroup SAKKE_RSK
  125. */
  126. int wc_SetSakkeRsk(SakkeKey* key, const ecc_point* rsk, byte* table,
  127. word32 len);
  128. /*!
  129. \ingroup SAKKE_Operations
  130. */
  131. int wc_DeriveSakkeSSV(SakkeKey* key, enum wc_HashType hashType,
  132. byte* ssv, word16 ssvSz, const byte* auth,
  133. word16 authSz);