Whirlpool.xs
上传用户:market2
上传日期:2018-11-18
资源大小:18786k
文件大小:1k
源码类别:

外挂编程

开发平台:

Windows_Unix

  1. #include "../whirlpool-algorithm.h"
  2. #define CLASS klass
  3. #include "EXTERN.h"
  4. #include "perl.h"
  5. #include "XSUB.h"
  6. MODULE = Utils::Whirlpool PACKAGE = Utils::Whirlpool
  7. PROTOTYPES: ENABLED
  8. WP_Struct *
  9. new(klass)
  10. char *klass
  11. CODE:
  12. RETVAL = WP_Create();
  13. OUTPUT:
  14. RETVAL
  15. void
  16. init(wp)
  17. WP_Struct *wp
  18. CODE:
  19. WP_Init(wp);
  20. void
  21. add(wp, data)
  22. WP_Struct *wp
  23. SV *data
  24. CODE:
  25. if (data != NULL && SvOK(data)) {
  26. STRLEN len;
  27. char *bytes;
  28. bytes = SvPV(data, len);
  29. WP_Add((const unsigned char * const) bytes, len * 8, wp);
  30. }
  31. SV *
  32. finalize(wp)
  33. WP_Struct *wp
  34. INIT:
  35. unsigned char hash[WP_DIGEST_SIZE];
  36. CODE:
  37. WP_Finalize(wp, hash);
  38. RETVAL = newSVpvn((const char *) hash, WP_DIGEST_SIZE);
  39. OUTPUT:
  40. RETVAL
  41. void
  42. DESTROY(wp)
  43. WP_Struct *wp
  44. CODE:
  45. WP_Free(wp);