rsa_san.h
上传用户:sjzccgj
上传日期:2014-10-18
资源大小:17k
文件大小:1k
源码类别:

CA认证

开发平台:

Visual C++

  1. // This is a slow but easy RSA encryption class
  2. // By sanicle,2005.12 
  3. // 3mn@3mn.net
  4. #include "vlong.h"
  5. #define PRIME_COUNT 1000000
  6. class RSA_san
  7. {
  8.   public:
  9. char r1[70];
  10. char r2[70];
  11. vlong n,e,d,p,q;
  12. vlong result;
  13. vlong prime_table[PRIME_COUNT];
  14. int prime_table_use;
  15. int prime_p_index;
  16. int prime_q_index;
  17. RSA_san();
  18. ~RSA_san();
  19. vlong encrypt( const vlong& x ); 
  20. vlong decrypt( const vlong& y );
  21. int RSA_san_en(char * s,unsigned n);
  22. int RSA_san_en_byte(char b);
  23. int RSA_san_dn(char * s,unsigned n);
  24. int RSA_san_dn_hexstring(char * s);
  25. int RSA_san_en_hexstring(char * s);
  26. char* hexstring2string(char * h);
  27. char* string2hexstring(char * s);//,unsigned len)
  28. char* vlong2hexstring( const vlong& v );
  29. //unsigned* vlong2ints( const vlong& v );
  30. char* vlong2shortints( const vlong& v );
  31. int set_e(char * e);
  32. int force_e(char * r,unsigned len);
  33. int force_d(char * r,unsigned len);
  34. int force_n(char * r,unsigned len);
  35. int update_pq(char * ra,char * rb);
  36.   private:
  37.     char s[255];
  38. unsigned u[127];
  39. void find_prime();
  40. void random_e();
  41. void calculate_d();
  42. };