<div dir="ltr"><div class="gmail_default" style="font-size:small">Dear friends</div><div class="gmail_default" style="">I need to understand how to verify a token using the public key of the issuer, using Bash and openssl. I guess <span style="font-size:17.5px;color:rgb(44,49,63);font-family:Montserrat,sans-serif">liviuchircu </span>knows this subject very well.</div><div class="gmail_default" style=""><br></div><div class="gmail_default" style="">So far I have done this, using a real token:</div><div class="gmail_default" style=""><br></div><div class="gmail_default" style="">token=“eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiaHR0cHM6Ly9hei50YXgvMSJ9.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyIxOTU0NDQ0NzQwOCJdfSwiaWF0IjoxNjc2MjY1NTE0LCJvcmlnIjp7InRuIjoiMTcyNzQ0MzMwMTkifSwib3JpZ2lkIjoiMzU4ZDA0OGItZTAwNy0xMWVhLWFjMzctNDctMjA1LTE3Mi04OSJ9.YD9kpeGaKFa6Gh-TIX7mAJWl9W3EpitTCpHxS7UEmddfT0E3DfRvpwE<br>IsGqC8ouKxwmuYGKq1hvgucKqLLYFhA”<br>echo “${token}” > token.txt<br>echo “-----BEGIN PUBLIC KEY-----<br>MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEkCmapE3ygZFy5ZDAjFSGh5rp766W<br>EZ2+adZvlPeVk5kJzenhDJROfhh7aIKiG/npK8VnYE0WOf2OjyJU6LE9OQ==<br>-----END PUBLIC KEY-----” > pk.pem<br>IFS=‘.’ read -r header payload signature <<< “$token”<br>echo “$signature” > signature.bin<br>echo “${payload}”|openssl dgst -sha256 -binary > payload_hash.bin<br>openssl pkeyutl -verify -inkey pk.pem -pubin -sigfile signature.bin -in payload_hash.bin<br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">But it fails verification. The same token passes verification on <a href="https://jwt.io">https://jwt.io</a></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><br></div></div>