Skip to content

CBC模式加密、解密数据数据padding错误 #1890

Description

@microrover

tls_cbc_encrypt函数下面的语句:
padding_len = 16 - rem - 1;
for (i = 0; i <= padding_len; i++) {
padding[i] = (uint8_t)padding_len;
}

应该修改为:
padding_len = 16 - rem;
for (i = 0; i <padding_len; i++) {
padding[i] = (uint8_t)padding_len;
}

同理:
解密的地方对于padding的数据检测,少检测1个byte。

目前代码:可以client和server互通,没有问题,但是不知道有没有隐患。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions