rsa_def.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #ifndef _RSA_H
  2. #define _RSA_H
  3. #include "bgn_export.h"
  4. #include "sec_cust_struct.h"
  5. /**************************************************************************
  6. * INCLUDING
  7. **************************************************************************/
  8. #include "alg_sha1.h"
  9. /**************************************************************************
  10. * MODE SELECTION
  11. **************************************************************************/
  12. #define SIG_RSA_RAW 0
  13. #define RSA_SIGN 1
  14. /**************************************************************************
  15. * CORE DATA STRUCTURE
  16. **************************************************************************/
  17. typedef struct {
  18. int len;
  19. int pad;
  20. int h_id;
  21. int (*f_rng)(void *);
  22. void *p_rng;
  23. /* keys { */
  24. bgn N;
  25. bgn E;
  26. bgn D;
  27. bgn RN;
  28. bgn RP;
  29. bgn RQ;
  30. /* keys } */
  31. } rsa_ctx;
  32. /**************************************************************************
  33. * EXPORT FUNCTIONS
  34. **************************************************************************/
  35. int rsa_sign(rsa_ctx *ctx, int h_len, const unsigned char *hash, unsigned char *sig);
  36. int rsa_verify(rsa_ctx *ctx, int h_len, const unsigned char *hash, unsigned char *sig);
  37. /**************************************************************************
  38. * EXPORT VARIABLES
  39. **************************************************************************/
  40. extern rsa_ctx rsa;
  41. /**************************************************************************
  42. * ERROR CODE
  43. **************************************************************************/
  44. #define E_RSA_BAD_INPUT_DATA 0x0001
  45. #define E_RSA_INVALID_PADDING 0x0002
  46. #define E_RSA_KEY_GEN_FAILED 0x0003
  47. #define E_RSA_KEY_CHECK_FAILED 0x0004
  48. #define E_RSA_PUBLIC_FAILED 0x0005
  49. #define E_RSA_PRIVATE_FAILED 0x0006
  50. #define E_RSA_VERIFY_FAILED 0x0007
  51. #define E_RSA_OUTPUT_TOO_LARGE 0x0008
  52. #endif