Всегда возвращать false при использовании openssl dgst -verify - PullRequest
0 голосов
/ 03 апреля 2019

Я хочу использовать openssl dgst, чтобы проверить, в порядке ли сообщение и данные подписи, предоставленные третьей стороной, в порядке или нет.

Как сообщение, так и данные знака имеют кодировку base64.

Согласнопо их спецификации, я должен сначала зашифровать сообщение в дайджест sha256, затем base64 декодировать данные знака, а затем расшифровать их с помощью открытого ключа.Наконец, я могу проверить, сравнив дайджест sha256 и расшифрованные данные знака.

Вот открытый ключ, который я извлекаю из их сертификата.

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxTRl9FnUNrnXNVFRl5gC
2Fo/rdr/x0T/dyoCuCmJKMO9tijgdS8/NNOyKRyswtq1gGSmAEKqcwqV6/cn8u8N
1QD/vO8jXErUwixVgypLyq6qNMz6qot+aabRwJuILFZbQ/lQQiCJA3VrEMgl8yFT
OOQNVvEovWbeLuaqJghJH4YfhmlC29stlb6oLmUoHmB0l1MgUqcxtmjwj+Q3a3R8
mAIKRpXnCYD+dLpnHwegcPpPbRBkmRFaM0M58msOelqayNrbTKwlM98xSlS+FAzQ
gyWWmiCMtxK+P1lTgQRWyOF2rp3ucc16hwlq0YvV5fCD5HHwp/46ftLKHY2szVHe
HQIDAQAB
-----END PUBLIC KEY-----

Вот данные:

eyJtZXNzYWdlSWQiOiJINlIwMDA1MDAxMDAiLCJmcHNJZGVudGlmaWVyIjoiMTk5NDA3OCAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCJ0cmFuc2FjdGlvbklkIjoiMTIxOTAzMjdGMDA0ODc1NzQ4ICAgICAgICAgICAgICAgICAiLCJlbmRUb0VuZElkIjoiMDAtMTkwMzI3Q1hBMjIyMTExMUhLNzc5MyAgICAgICAgICAiLCJ0eG5DdXIiOiJIS0QiLCJ0eG5BbXQiOiIgICAgICAgIDEwMS4wMCIsInR4bkRhdGVUaW1lIjoiMjAyMjA4MDEgMTg6MDQ6MzEifQ

1013 * Вот данные знак: 1015 * XYuv2MvzWfzc0dmB_mVbKdlHZC26AiZdllFEQFhYMmAhvhe7AOOWQ8xrEYeca0D4UMPdHGfCPY0qNVGa0jNUvIwK0qJ6V6Le6dhkXVk5q0o0Q3Is6C3mk4Q6CqBdGK5yAdrYLmNG5v6fA2ifg_YvcVnavwFawvSue-fp7yyAyNZtdyeC2j3mMND0P91NQ2yHHbGCRJWFxzsqz4CdhTPrLGPiqZAdJejfz1irMLuiuUjTKSazsqYAJhXslz9xXd9hyZsQdCTrGT4MYQjTHoiQAoIEqrE5rhDI3ZifhaYFg1fRrGXagw5s5naelCks6ypu95YPmuEqG0QJl2YoQlwMpw 1017 * Я пытался использовать
base64 --decode sigfile > decodedsigfile

до decodСначала нужно подписать данные.

Затем используйте

openssl dgst -sha256 -verify <public key> -signature decodedsigfile datafile

для проверки.

Я ожидаю, что это правда.Однако вывод всегда ложный.

Мне нужна помощь, чтобы сообщить, какая часть неправильна.

(Предположим, что открытый ключ правильный)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...