相关疑难解决方法(0)

验证签名链SWI-Prolog

此问题与打开和检查SWI-Prolog中的Pem文件有关

下载并打开证书后,如何验证签名链?我有:

:-use_module(library(http/http_client)).

url('https://s3.amazonaws.com/echo.api/echo-api-cert-4.pem').

url_data1(Url,Certs):-
 http_open(Url,Stream,[]),
 all_certs(Stream,Certs),
 forall(member(C,Certs),my_validate(C)),
 close(Stream).

all_certs(Stream,[C1|Certs]):-
 catch(load_certificate(Stream,C1),_,fail),
 all_certs(Stream,Certs),!.
 all_certs(_Stream,[]).

my_validate(C):-
 memberchk(to_be_signed(Signed),C),
 memberchk(key(Key),C),
 memberchk(signature(Signature),C),
 memberchk(signature_algorithm(A),C),
 algo_code(A,Code),
 rsa_verify(Key,Signed,Signature,[type(Code)]).

algo_code('RSA-SHA256',sha256).
algo_code('RSA-SHA1',sha1).
Run Code Online (Sandbox Code Playgroud)

这目前失败了.

ssl prolog pem swi-prolog

3
推荐指数
1
解决办法
144
查看次数

标签 统计

pem ×1

prolog ×1

ssl ×1

swi-prolog ×1