IcbcCa.php 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. class IcbcCa{
  3. public static function sign($content,$privatekey,$password){
  4. if (!extension_loaded('infosec'))
  5. {
  6. if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN')
  7. {
  8. dl('php_infosec.dll');
  9. }
  10. else
  11. {
  12. dl('infosec.so');
  13. }
  14. }
  15. else
  16. {
  17. //echo "loaded infosec module success <br/>";
  18. }
  19. $plaint=$content;
  20. if(strlen($plaint) <= 0)
  21. {
  22. echo "WARNING : no source data input";
  23. throw new Exception("no source data input");
  24. }
  25. /* $keyfile=$keyfilepath;
  26. if(strlen($keyfile) <= 0)
  27. {
  28. echo "WARNING : no key data input<br/>";
  29. exit();
  30. }*/
  31. //read private key from file
  32. //$fd = "pri-CEA.key";
  33. /* $fp = fopen($keyfile,"rb");
  34. if($fp == NULL)
  35. {
  36. echo "open file error<br/>";
  37. exit();
  38. }
  39. fseek($fp,0,SEEK_END);
  40. $filelen=ftell($fp);
  41. fseek($fp,0,SEEK_SET);
  42. $contents = fread($fp,$filelen);
  43. fclose($fp);*/
  44. $contents = base64_decode($privatekey);
  45. $key = substr($contents,2);
  46. //echo "key:",base64_encode($key),"\n";
  47. $pass=$password;
  48. if(strlen($pass) <= 0)
  49. {
  50. echo "WARNING : no key password input";
  51. throw new Exception("no key password input");
  52. }else{
  53. $signature = sign($plaint,$key,$pass);
  54. $code = current($signature);
  55. $len = next($signature);
  56. $signcode = base64enc($code);
  57. return current($signcode);
  58. /* echo "signature : ",current($signcode),"\n";
  59. echo "signature len: ",$len,"\n";*/
  60. }
  61. }
  62. public static function verify($content,$publicKey,$password){
  63. }
  64. }
  65. //echo IcbcCa::sign("nihao",'BKlZsKQJ0eG9UDtOJxl2rl8uzVClQzBUsaq9BBB7KlaBUn7NplThEKAbmGFUmcqIqvzU6shLqJUb58iZGUEiRx4SyjL8cKL7lTy1n6nVA6aMwJcfPIn5uZ5ynNW8n9m/5piy/lSkWpTAwebeqeSKYiXzeWtsuFmptSZkOjtsymsjgTfY60AkCBw1rGtJ08NXvN50u6QaFdeggX+++MDCK5W7ZC2SOvtkatkIKlrBlj0Gnri7O+Y7Ul44ysBDB4mhbZJuqffzBAJyDk0r3Q9WTaOg4aBSlyyp2lwfxiJ0SvZJJMS3jLdlWXTepVSE/IgVIHXlNRtkccr9Y3eY4XN6G6qVRViSTqmckYnZZFZWesVqihvP2U32aYsRWR4TIq/im77aFKCWMgOrOCVttV981AKHIn1kC1r6O/x9k2GAuadF5bGcb0tjhEJV+ijoFhI0Syi7D9ZS5F/MVCq0B/8MAC+pFZOxXtfAJDtz/M0x1t2H82gk9xATPgNq9CVPzNtNnQOvE1HWmn2ZDSCmR7IkSA8EEN5pqz8QYRvs3O8tFechYztifM1+TBs5KciN4FjZZhiE3+vbBSFboxte40yaLgZE0cm3ZDSHhaflDb5f3C162kF2Nbi9fG4Se3DKHyH1HRZfwDpWmB5MUjBb5j+GNxp+7KtCAinxFEthYeMmkIKMwXolZnlxdrO0BdySJSekrTgIbihtjmp9racWhiCxVX8ThaTGCEP1+6fz6bUmk2IZ2yaYo93KkZxcXmkO0sHFKZZ8Y+hiBk12EOQO8mKfFhYKIJ/s4SViqYOe+kL/T49enAmaue2j+5UDRUSN0xR3oOzhPb9o/OfXCPTdxCtyAQX36oTPnRsouMiy3PW33iWcKPx7gD/fTEct5Qz/t6FBx5orz7EnG1TEEbTp+GzvZm0h4DPQ04jEjHJcb94r0EbdsOZrItyv1+krWtAvpS3IiHZkuTyRe7awrgaZRWWNohynpCjAIDhrJ/pdYzTKhpS/lJTkMQxsD3lLaNh5MqnQYwkdn53Geb6zwo6VQRYVFlyw9zmPptMHleauQtJjCx5pYgaCRt176BkxZnQTiF3BFKNsEEQhs3b/AKY4BqCszwXaj28BprZ9i/rpx9l9GgdVA0vVFgbXmceXIMTWlSdbI9wIdQ5pPtBiEUpnNF2vc6mB3VwQ2GY78NztzRlJRrPA2xgvYu34iGtnEjiyxQt+2C6gIq9xsc9rMWfyQRpcm0lQ0xkZ0R9xC8QtaoSmcbLs1XtZoDiPCmIL44NLMt7t3vM+jD8tId/0WYqJge/vBsVuKXOwa4KaTVUHkBfWfIwIaKz19eYq/zi/2hDDxlbLBz92wtDg/i/Uoe3jH/HCJ2hXmH+jaUQD/Z8+GKVK476+6Xe6K7VAKr7/qc9RIljby+/fm4ghwBMAkLf9IFWoOU+ZBGdN3HLl4x8OHIz2QnjG5NRsKebzYg39kYVX8/50z9tHVxTvJYVgJ5n+IbrFnHgKw5GdCtHjuWXRAkS2Nq/r1N9t5jRtuyt0kVslGk0nMES7hVXxXGqKm2cHJzjd3/npbONYGxK4TxyPccDs8MRfYEuuQpgoL/IMdA==',"12345678");
  66. ?>