• A
    psk_client_callback, 128-byte id bug. · be0d8517
    Adam Langley 提交于
    Fix a bug in handling of 128 byte long PSK identity in
    psk_client_callback.
    
    OpenSSL supports PSK identities of up to (and including) 128 bytes in
    length. PSK identity is obtained via the psk_client_callback,
    implementors of which are expected to provide a NULL-terminated
    identity. However, the callback is invoked with only 128 bytes of
    storage thus making it impossible to return a 128 byte long identity and
    the required additional NULL byte.
    
    This CL fixes the issue by passing in a 129 byte long buffer into the
    psk_client_callback. As a safety precaution, this CL also zeroes out the
    buffer before passing it into the callback, uses strnlen for obtaining
    the length of the identity returned by the callback, and aborts the
    handshake if the identity (without the NULL terminator) is longer than
    128 bytes.
    
    (Original patch amended to achieve strnlen in a different way.)
    Reviewed-by: NRich Salz <rsalz@openssl.org>
    be0d8517
s3_clnt.c 92.0 KB