我想使用WebPush加密方案(RFC 8291)对发送到Android应用的推送消息进行加密。根据RFC的要求,有效载荷使用aes128gcm进行编码。
使用Web Push PHP对消息进行加密。为了掩盖消息的长度,请在0x02
填充分隔符八位字节之后添加使用零个八位字节的填充(如RFC 8188中所述)。
要在Android设备上解密消息,我正在使用Tink中的实现。
问题是Tink中的实现期望有效载荷的最后一个八位位组是填充定界符(crf。line 261 in WebPushHybridDecrypt.java)。不幸的是,如果添加了填充八位字节,则最后一个八位字节为0x00
,因此此检查失败。
此时我是否遗漏了任何东西或Tink是否不符合RFC?