version 1.1, 2019/10/31 21:15:14 |
version 1.2, 2019/11/19 22:23:19 |
|
|
if ((b = sshbuf_from(signature, signaturelen)) == NULL) |
if ((b = sshbuf_from(signature, signaturelen)) == NULL) |
return SSH_ERR_ALLOC_FAIL; |
return SSH_ERR_ALLOC_FAIL; |
if (sshbuf_get_cstring(b, &ktype, NULL) != 0 || |
if (sshbuf_get_cstring(b, &ktype, NULL) != 0 || |
sshbuf_froms(b, &sigbuf) != 0) { |
sshbuf_froms(b, &sigbuf) != 0 || |
|
sshbuf_get_u8(b, &sig_flags) != 0 || |
|
sshbuf_get_u32(b, &sig_counter) != 0) { |
ret = SSH_ERR_INVALID_FORMAT; |
ret = SSH_ERR_INVALID_FORMAT; |
goto out; |
goto out; |
} |
} |
|
|
|
|
/* parse signature */ |
/* parse signature */ |
if (sshbuf_get_bignum2(sigbuf, &sig_r) != 0 || |
if (sshbuf_get_bignum2(sigbuf, &sig_r) != 0 || |
sshbuf_get_bignum2(sigbuf, &sig_s) != 0 || |
sshbuf_get_bignum2(sigbuf, &sig_s) != 0) { |
sshbuf_get_u8(sigbuf, &sig_flags) != 0 || |
|
sshbuf_get_u32(sigbuf, &sig_counter) != 0) { |
|
ret = SSH_ERR_INVALID_FORMAT; |
ret = SSH_ERR_INVALID_FORMAT; |
goto out; |
goto out; |
} |
} |