29 lines
1.5 KiB
PHP
Executable File
29 lines
1.5 KiB
PHP
Executable File
<?php
|
|
include_once 'IcbcConstants.php';
|
|
class RSA{
|
|
public static function sign($content,$privateKey,$algorithm){
|
|
if(IcbcConstants::$SIGN_SHA1RSA_ALGORITHMS == $algorithm){
|
|
openssl_sign($content,$signature,"-----BEGIN PRIVATE KEY-----\n".$privateKey."\n-----END PRIVATE KEY-----", OPENSSL_ALGO_SHA1);
|
|
}elseif (IcbcConstants::$SIGN_SHA256RSA_ALGORITHMS == $algorithm) {
|
|
openssl_sign($content,$signature,"-----BEGIN PRIVATE KEY-----\n".$privateKey."\n-----END PRIVATE KEY-----", OPENSSL_ALGO_SHA256);
|
|
}else{
|
|
throw new Exception("Only support OPENSSL_ALGO_SHA1 or OPENSSL_ALGO_SHA256 algorithm signature!");
|
|
}
|
|
return base64_encode($signature);
|
|
}
|
|
|
|
public static function verify($content,$signature,$publicKey,$algorithm){
|
|
if(IcbcConstants::$SIGN_SHA1RSA_ALGORITHMS == $algorithm){
|
|
return openssl_verify($content,base64_decode($signature),"-----BEGIN PUBLIC KEY-----\n".$publicKey."\n-----END PUBLIC KEY-----", OPENSSL_ALGO_SHA1);
|
|
}elseif (IcbcConstants::$SIGN_SHA256RSA_ALGORITHMS == $algorithm) {
|
|
var_dump(base64_decode(12));
|
|
var_dump(base64_decode($signature));
|
|
print_r("<pre>");
|
|
var_dump("-----BEGIN PUBLIC KEY-----\n".wordwrap($publicKey,64,"\n",true)."\n-----END PUBLIC KEY-----");
|
|
return openssl_verify($content,base64_decode($signature),"-----BEGIN PUBLIC KEY-----\n".wordwrap($publicKey,64,"\n",true)."\n-----END PUBLIC KEY-----", OPENSSL_ALGO_SHA256);
|
|
}else{
|
|
throw new Exception("Only support OPENSSL_ALGO_SHA1 or OPENSSL_ALGO_SHA256 algorithm signature verify!");
|
|
}
|
|
}
|
|
}
|
|
?>
|