as3api.cpp 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #include <stdlib.h>
  2. #include <string>
  3. #include "AS3/AS3.h"
  4. #include "hashlib/hl_hashwrapper.h"
  5. #include "hashlib/hl_md5wrapper.h"
  6. void md5String() __attribute__((used,
  7. annotate("as3sig:public function md5String(input:String):String"),
  8. annotate("as3package:com.webuploader")));
  9. /**
  10. * MD5 ("") = d41d8cd98f00b204e9800998ecf8427e
  11. * MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661
  12. * MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72
  13. * MD5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0
  14. * MD5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b
  15. * MD5 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") =
  16. * d174ab98d277d9f5a5611c2c9f419d9f
  17. * MD5 ("123456789012345678901234567890123456789012345678901234567890123456
  18. * 78901234567890") = 57edf4a22be3c955ac49da2e2107b67a
  19. */
  20. void md5String(){
  21. const char *src = NULL;
  22. AS3_MallocString(src, input);
  23. std::string srcString(src);
  24. const char *result;
  25. hashwrapper *wrapper;
  26. wrapper = new md5wrapper();
  27. std::string md5 = wrapper->getHashFromString(srcString);
  28. result = md5.c_str();
  29. delete wrapper;
  30. // We can't just call AS3_Return(s) because s is not a scalar.
  31. // Instead we need to marshall the C string into AS3 and use
  32. // AS3_ReturnAS3Var().
  33. AS3_DeclareVar(myString, String);
  34. AS3_CopyCStringToVar(myString, result, 32);
  35. AS3_ReturnAS3Var(myString);
  36. }