多年来,我一直按照以下说明使用 Expedia API:
https://developers.expediagroup.com/docs/rapid/resources/reference/signature-authentication
我收到一封电子邮件,说我需要更改旧密码,而是使用此列表中的一个:
TLS-AES-256-GCM-SHA384
TLS-CHACHA20-POLY1305-SHA256
TLS-AES-128-GCM-SHA256
ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-RSA-AES128-GCM-SHA256
ECDHE-ECDSA-HACHA20-POLY1305
ECDHE-RSA-CHACHA20-POLY1305
他们没有提供太多解释。我迷路了,因为例如如果我想使用 TLS-AES-256-GCM-SHA384 那么我需要使用 32 字节长度的密钥,但 Expedia 几年前发送给我的 api 密钥和秘密密钥是 26 字节长度。
我使用的是 Go 1.12,也许这就是问题所在?也许底层的 http/net 包很旧并且接受旧的密码,我需要使用新版本的 Go?
已修复:问题的原因是我使用的是 Go 1.12,它没有 Expedia 预期的密码列表。升级到至少 1.13 即可修复该问题。