如何使用BASH将JSON Web密钥集(JWKS)公共密钥转换为PEM文件?

问题描述 投票:0回答:1

假设您使用AWS,并且您想使用Cognito使用基于ID的身份验证。

然后,aws为您提供了一个公共密钥,您可以用它来验证认知负载。

我们还假设您不希望或无法使用像jose这样的精美库,因为您被锁定在高度受限的环境中。

要走的路是可以使旧的BASH脚本Brian Kernighan骄傲。您必须先了解编码。Base64Url需要转换为Base64。

这是使用填充字符=实现的如果字符数可被4整除,则无需填充。这涉及二进制数字表示。处理完后,您可以将Base64转换为binary

但是如何仅使用BASH和BASH程序来做到这一点?

bash amazon-web-services openssl jwt pem
1个回答
0
投票

以下是一些选项:

要么忽略base64 -d抱怨输入被截断:

<<<'SGVsbG8geW91Cg' base64 -d 2>/dev/null ||:

或在解码前用Bash修复base64填充:

base64URL='SGVsbG8geW91Cg'

printf -v pad_space '%*s' $((${#base64URL}%4)) ''

padded_base64="$base64URL${pad_space// /=}"

<<<"$padded_base64" base64 -d
© www.soinside.com 2019 - 2024. All rights reserved.