FreeBSDパッケージを手動で検証するための「ハウツー」はインターネット上にないので、ここに私が見つけたものがあります。
トリックは、openssl rsautl出力のオクテット文字列が実際にはファイルのSHA256ハッシュである文字列のハッシュであることです。
たとえば、currentをダウンロードしてhttp://pkg.freebsd.org/FreeBSD:12:amd64/latest/digests.txz抽出し、次のようにします。
方法1(を使用したワンライナーopenssl dgst)
ここではtr -d '\n'、標準入力から新しい行を削除することが重要であるため、の文字列入力には含まれていませんopenssl dgst。
sha256 -q digests | tr -d '\n' | openssl dgst -verify digests.pub -signature digests.sig
このコマンドは出力する必要がありますVerified OK。
方法2(.sigファイルのオクテット文字列と手動で生成されたハッシュの視覚的比較)
- OpenSSLユーティリティを使用して、digests.sigからコンテンツをダンプします。 - openssl rsautl -pubin -inkey digests.pub -verify -in digests.sig -asn1parse
0:d=0  hl=2 l=  49 cons: SEQUENCE          
2:d=1  hl=2 l=  13 cons:  SEQUENCE          
4:d=2  hl=2 l=   9 prim:   OBJECT            :sha256
15:d=2  hl=2 l=   0 prim:   NULL              
17:d=1  hl=2 l=  32 prim:  OCTET STRING      
  0000 - ac c6 ac be cd 5e 61 63-62 82 62 4b ba 77 37 6e   .....^acb.bK.w7n
  0010 - 0b fa ea ef 6e 10 21 01-62 64 06 2f d0 f1 60 22   ....n.!.bd./..`"
 - ここでは、埋め込みオブジェクトがSHA256ハッシュであり、その値がであることがわかります- acc6acbecd5e61636282624bba77376e0bfaeaef6e1021016264062fd0f16022。
 
- 次に、ファイルのSHA256を計算します- digests。
 - sha256 -q digests
8db18c93bea414fd8a281f5f3795b2ca4be51479c18b225ff87b8aa957ec2c5d
 
- 最後に、echoコマンドを使用してこの文字列のSHA256を計算し、によって返された値と比較しますopenssl rsautl。echo -n 8db18c93bea414fd8a281f5f3795b2ca4be51479c18b225ff87b8aa957ec2c5d | sha256
acc6acbecd5e61636282624bba77376e0bfaeaef6e1021016264062fd0f16022
 
ステップ3の値がステップ1の値とどのように一致するか、ファイルdigestsが有効であることに注意してください。
               
              
openssl rsautl -pubin -inkey digests.pub -verify -in digests.sig -asn1parseしているように見えますが、ここで言及されているものに類似したコマンドも 一致していないようです。