Tôi có một tập tin nhị phân:Thẩm định chữ ký sử dụng go.crypto/OpenPGP
foo.bin
Tập tin này đã được ký kết dùng một khoá GPG để tạo ra:
foo.bin.sig
Tôi có một tập tin có chứa các khóa công khai được sử dụng để ký tên tệp nhị phân.
Điều tôi muốn làm là có thể xác minh chữ ký này bằng Go.
Tôi đã đọc tài liệu go.crypto/openpgp và chúng không đặc biệt hữu ích cho trường hợp sử dụng này.
Quá trình xác minh sẽ được thực hiện trên máy từ xa. Lý tưởng nhất là tôi muốn tránh sử dụng keyring trên máy sẽ chạy mã này. Khóa công khai có thể được lưu trữ một cách trivially trong bản thân thực thi ... nếu tôi có thể tìm ra cách thực hiện xác minh này.
Các bước mà tôi nghĩ rằng tôi cần phải làm như sau:
- Tạo một Entity mà chỉ đại diện cho cộng đồng quan trọng
- mở cả các tập tin nhị phân và chữ ký và vượt qua nó để một số chức năng xác minh
Câu hỏi chủ yếu là: làm cách nào để viết chức năng xác minh này chỉ sử dụng khóa công khai?
Tôi không rõ ràng về yêu cầu của bạn. Có thể thay thế khóa gpg bằng các phương thức khác như SHA256/MD5/RSA ... không? –
Theo wikipedia, chữ ký openpgp là chữ ký của hàm băm của tệp. Chữ ký được thực hiện bằng cách sử dụng rsa hoặc dsa và băm có thể được thực hiện bằng cách sử dụng nhiều thuật toán. Tôi nghĩ bạn cần hiểu tệp '.sig' để xác minh chữ ký. Sau đó, gói [crypto] (http://golang.org/pkg/crypto/) sẽ có tất cả các phương thức bạn cần. Nếu bạn tìm thấy tài liệu về định nghĩa tệp .sig (tôi không tìm thấy), vui lòng đặt nó ở đây. Tôi cũng muốn thấy điều đó. – user983716