我正在使用PHP的GnuPG类。我没有任何问题导入有效的公钥,但如果我尝试导入一些随机的东西,比如“test”,显然不是公钥,我会收到502错误网关的错误。我查看了PHP文档,发现
gnupg_keyinfo
显示存储在密钥环中的名称的信息。我在互联网上搜索了一下,没有找到检查输入的公钥格式是否正确的方法。
我正在使用以下代码:<?php
putenv('GNUPGHOME=/home/kevin/.gnupg');
$gpg = '/usr/bin/gpg';
$gpg = new gnupg();
$gpg->seterrormode(gnupg::ERROR_EXCEPTION);
if(isset($_POST['2fa'])){
try {
$key = $_POST['new_pgp'];
$retVal = $gpg->import($key);
echo $retVal['imported'] . ' key(s) imported.';
} catch (Exception $e) {
die('ERROR: ' . $e->getMessage());
}
}
?>
<html>
<body>
<form action="pgp.php" method="post">
<textarea name="new_pgp"></textarea><br>
<input type="submit" name="2fa" value="Send">
</form>
</body>
</html>