version 1.4, 2015/01/14 15:02:39 |
version 1.5, 2016/01/12 23:42:54 |
|
|
if (len > 0 && (d[1] & 0x80) != 0) |
if (len > 0 && (d[1] & 0x80) != 0) |
prepend = 1; |
prepend = 1; |
if ((r = sshbuf_put_string(buf, d + 1 - prepend, len + prepend)) < 0) { |
if ((r = sshbuf_put_string(buf, d + 1 - prepend, len + prepend)) < 0) { |
bzero(d, sizeof(d)); |
explicit_bzero(d, sizeof(d)); |
return r; |
return r; |
} |
} |
bzero(d, sizeof(d)); |
explicit_bzero(d, sizeof(d)); |
return 0; |
return 0; |
} |
} |
|
|
|
|
if (BN_bn2bin(v, d) != (int)len_bytes) |
if (BN_bn2bin(v, d) != (int)len_bytes) |
return SSH_ERR_INTERNAL_ERROR; /* Shouldn't happen */ |
return SSH_ERR_INTERNAL_ERROR; /* Shouldn't happen */ |
if ((r = sshbuf_reserve(buf, len_bytes + 2, &dp)) < 0) { |
if ((r = sshbuf_reserve(buf, len_bytes + 2, &dp)) < 0) { |
bzero(d, sizeof(d)); |
explicit_bzero(d, sizeof(d)); |
return r; |
return r; |
} |
} |
POKE_U16(dp, len_bits); |
POKE_U16(dp, len_bits); |
if (len_bytes != 0) |
if (len_bytes != 0) |
memcpy(dp + 2, d, len_bytes); |
memcpy(dp + 2, d, len_bytes); |
bzero(d, sizeof(d)); |
explicit_bzero(d, sizeof(d)); |
return 0; |
return 0; |
} |
} |
|
|
|
|
} |
} |
BN_CTX_free(bn_ctx); |
BN_CTX_free(bn_ctx); |
ret = sshbuf_put_string(buf, d, len); |
ret = sshbuf_put_string(buf, d, len); |
bzero(d, len); |
explicit_bzero(d, len); |
return ret; |
return ret; |
} |
} |
|
|