eccsi.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. /*!
  2. */
  3. int wc_InitEccsiKey(EccsiKey* key, void* heap, int devId);
  4. /*!
  5. */
  6. int wc_InitEccsiKey_ex(EccsiKey* key, int keySz, int curveId,
  7. void* heap, int devId);
  8. /*!
  9. */
  10. void wc_FreeEccsiKey(EccsiKey* key);
  11. /*!
  12. */
  13. int wc_MakeEccsiKey(EccsiKey* key, WC_RNG* rng);
  14. /*!
  15. */
  16. int wc_MakeEccsiPair(EccsiKey* key, WC_RNG* rng,
  17. enum wc_HashType hashType, const byte* id, word32 idSz, mp_int* ssk,
  18. ecc_point* pvt);
  19. /*!
  20. */
  21. int wc_ValidateEccsiPair(EccsiKey* key, enum wc_HashType hashType,
  22. const byte* id, word32 idSz, const mp_int* ssk, ecc_point* pvt,
  23. int* valid);
  24. /*!
  25. */
  26. int wc_ValidateEccsiPvt(EccsiKey* key, const ecc_point* pvt,
  27. int* valid);
  28. /*!
  29. */
  30. int wc_EncodeEccsiPair(const EccsiKey* key, mp_int* ssk,
  31. ecc_point* pvt, byte* data, word32* sz);
  32. /*!
  33. */
  34. int wc_EncodeEccsiSsk(const EccsiKey* key, mp_int* ssk, byte* data,
  35. word32* sz);
  36. /*!
  37. */
  38. int wc_EncodeEccsiPvt(const EccsiKey* key, ecc_point* pvt,
  39. byte* data, word32* sz, int raw);
  40. /*!
  41. */
  42. int wc_DecodeEccsiPair(const EccsiKey* key, const byte* data,
  43. word32 sz, mp_int* ssk, ecc_point* pvt);
  44. /*!
  45. */
  46. int wc_DecodeEccsiSsk(const EccsiKey* key, const byte* data,
  47. word32 sz, mp_int* ssk);
  48. /*!
  49. */
  50. int wc_DecodeEccsiPvt(const EccsiKey* key, const byte* data,
  51. word32 sz, ecc_point* pvt);
  52. /*!
  53. */
  54. int wc_DecodeEccsiPvtFromSig(const EccsiKey* key, const byte* sig,
  55. word32 sz, ecc_point* pvt);
  56. /*!
  57. */
  58. int wc_ExportEccsiKey(EccsiKey* key, byte* data, word32* sz);
  59. /*!
  60. */
  61. int wc_ImportEccsiKey(EccsiKey* key, const byte* data, word32 sz);
  62. /*!
  63. */
  64. int wc_ExportEccsiPrivateKey(EccsiKey* key, byte* data, word32* sz);
  65. /*!
  66. */
  67. int wc_ImportEccsiPrivateKey(EccsiKey* key, const byte* data,
  68. word32 sz);
  69. /*!
  70. */
  71. int wc_ExportEccsiPublicKey(EccsiKey* key, byte* data, word32* sz,
  72. int raw);
  73. /*!
  74. */
  75. int wc_ImportEccsiPublicKey(EccsiKey* key, const byte* data,
  76. word32 sz, int trusted);
  77. /*!
  78. */
  79. int wc_HashEccsiId(EccsiKey* key, enum wc_HashType hashType,
  80. const byte* id, word32 idSz, ecc_point* pvt, byte* hash, byte* hashSz);
  81. /*!
  82. */
  83. int wc_SetEccsiHash(EccsiKey* key, const byte* hash, byte hashSz);
  84. /*!
  85. */
  86. int wc_SetEccsiPair(EccsiKey* key, const mp_int* ssk,
  87. const ecc_point* pvt);
  88. /*!
  89. */
  90. int wc_SignEccsiHash(EccsiKey* key, WC_RNG* rng,
  91. enum wc_HashType hashType, const byte* msg, word32 msgSz, byte* sig,
  92. word32* sigSz);
  93. /*!
  94. */
  95. int wc_VerifyEccsiHash(EccsiKey* key, enum wc_HashType hashType,
  96. const byte* msg, word32 msgSz, const byte* sig, word32 sigSz,
  97. int* verified);