説明
int
openssl_verify ( string data, string signature, mixed pub_key_id)
è¦å‘Š |
ã“ã®é–¢æ•°ã¯ã€
実験的ãªã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã«ã‚りã¾ã™ã€‚ã“れã¯ã€ã“ã®é–¢æ•°ã®
動作ã€é–¢æ•°åã€ã“ã“ã§æ›¸ã‹ã‚Œã¦ã„ã‚‹ã“ã¨å…¨ã¦ãŒPHPã®å°†æ¥ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã§äºˆå‘Š
ãªã変更ã•れるå¯èƒ½æ€§ãŒã‚ã‚‹ã“ã¨ã‚’æ„味ã—ã¾ã™ã€‚注æ„ã‚’å–šèµ·ã™ã‚‹ã¨ã¨ã‚‚ã«è‡ªåˆ†
ã®ãƒªã‚¹ã‚¯ã§ã“ã®é–¢æ•°ã‚’使用ã—ã¦ä¸‹ã•ã„。 |
ç½²å(signature)ãŒæ£ã—ã„å ´åˆã« 1ã€æ£ã—ããªã„å ´åˆã« 0ã€ã‚¨ãƒ©ãƒ¼ã®å ´åˆ
ã« -1 ã‚’è¿”ã—ã¾ã™ã€‚
openssl_verify() ã¯ã€
pub_key_id ãŒæŒ‡ã™å…¬é–‹ã‚ーを使用ã—ã¦æŒ‡å®šã—
㟠data ã«é–¢ã—ã¦
signature ãŒæ£ã—ã„ã“ã¨ã‚’確èªã—ã¾ã™ã€‚ç½²åãŒ
æ£ã—ã„ã¨åˆ¤å®šã•れるãŸã‚ã«ã¯ã€ãã®å…¬é–‹ã‚ーãŒç½²åã®éš›ã«ä½¿ç”¨ã—ãŸç§˜å¯†
ã‚ーã«å¯¾å¿œã—ã¦ã„ã‚‹ã“ã¨ã‚’å¿…è¦ã¨ã—ã¾ã™ã€‚
例 1openssl_verify() ã®ä¾‹ // $data ãŠã‚ˆã³ $signature ã¯ãƒ‡ãƒ¼ã‚¿ãŠã‚ˆã³ç½²åãŒå«ã¾ã‚Œã¦ã„ã‚‹ã¨ä»®å®š
// èªè¨¼å±€ã‹ã‚‰å…¬é–‹ã‚ーをå–å¾—ã—ã€ä½¿ç”¨å¯èƒ½ã«ã™ã‚‹
$fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pubkeyid = openssl_get_publickey($cert);
// ç½²åãŒæ£ã—ã„ã‹ã©ã†ã‹ã‚’確èª
$ok = openssl_verify($data, $signature, $pubkeyid);
if ($ok == 1)
echo "æ£ã—ã„ã§ã™";
elseif ($ok == 0)
echo "æ£ã—ãã‚りã¾ã›ã‚“";
else
echo "ç½²åを確èªã™ã‚‹éš›ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ";
// メモリã‹ã‚‰ã‚ーを開放
openssl_free_key($pubkeyid); |
|
openssl_sign() ã‚‚å‚照下ã•ã„。