version 1.28.2.2, 2004/03/04 18:18:16 |
version 1.29, 2003/06/16 08:22:35 |
|
|
/* |
/* |
* Copyright (c) 2000, 2003 Markus Friedl <markus@openbsd.org> |
* Copyright (c) 2000 Markus Friedl. All rights reserved. |
* |
* |
* Permission to use, copy, modify, and distribute this software for any |
* Redistribution and use in source and binary forms, with or without |
* purpose with or without fee is hereby granted, provided that the above |
* modification, are permitted provided that the following conditions |
* copyright notice and this permission notice appear in all copies. |
* are met: |
|
* 1. Redistributions of source code must retain the above copyright |
|
* notice, this list of conditions and the following disclaimer. |
|
* 2. Redistributions in binary form must reproduce the above copyright |
|
* notice, this list of conditions and the following disclaimer in the |
|
* documentation and/or other materials provided with the distribution. |
* |
* |
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, |
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
|
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
*/ |
|
|
#include "includes.h" |
#include "includes.h" |
RCSID("$OpenBSD$"); |
RCSID("$OpenBSD$"); |
|
|
|
|
|
|
/* RSASSA-PKCS1-v1_5 (PKCS #1 v2.0 signature) with SHA1 */ |
/* RSASSA-PKCS1-v1_5 (PKCS #1 v2.0 signature) with SHA1 */ |
int |
int |
ssh_rsa_sign(const Key *key, u_char **sigp, u_int *lenp, |
ssh_rsa_sign(Key *key, u_char **sigp, u_int *lenp, |
const u_char *data, u_int datalen) |
u_char *data, u_int datalen) |
{ |
{ |
const EVP_MD *evp_md; |
const EVP_MD *evp_md; |
EVP_MD_CTX md; |
EVP_MD_CTX md; |
|
|
} |
} |
|
|
int |
int |
ssh_rsa_verify(const Key *key, const u_char *signature, u_int signaturelen, |
ssh_rsa_verify(Key *key, u_char *signature, u_int signaturelen, |
const u_char *data, u_int datalen) |
u_char *data, u_int datalen) |
{ |
{ |
Buffer b; |
Buffer b; |
const EVP_MD *evp_md; |
const EVP_MD *evp_md; |
|
|
ERR_error_string(ERR_get_error(), NULL)); |
ERR_error_string(ERR_get_error(), NULL)); |
goto done; |
goto done; |
} |
} |
if (len != hlen + oidlen) { |
if (len < hlen + oidlen) { |
error("bad decrypted len: %d != %d + %d", len, hlen, oidlen); |
error("bad decrypted len: %d < %d + %d", len, hlen, oidlen); |
goto done; |
goto done; |
} |
} |
if (memcmp(decrypted, oid, oidlen) != 0) { |
if (memcmp(decrypted, oid, oidlen) != 0) { |