mirror of
git://git.gnupg.org/gnupg.git
synced 2024-05-28 21:50:02 +02:00
gpg: Fix key conversion for SSH.
* g10/export.c (key_to_sshblob): Use put_membuf with length counted beforehand, and use memcmp instead of strncmp. -- GnuPG-bug-id: 5393 Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
parent
c397ba3ac0
commit
07671917e4
11
g10/export.c
11
g10/export.c
|
@ -2133,14 +2133,15 @@ key_to_sshblob (membuf_t *mb, const char *identifier, ...)
|
||||||
size_t buflen;
|
size_t buflen;
|
||||||
gcry_mpi_t a;
|
gcry_mpi_t a;
|
||||||
|
|
||||||
ulongtobuf (nbuf, (ulong)strlen (identifier));
|
buflen = strlen (identifier);
|
||||||
|
ulongtobuf (nbuf, (ulong)buflen);
|
||||||
put_membuf (mb, nbuf, 4);
|
put_membuf (mb, nbuf, 4);
|
||||||
put_membuf_str (mb, identifier);
|
put_membuf (mb, identifier, buflen);
|
||||||
if (!strncmp (identifier, "ecdsa-sha2-", 11))
|
if (buflen > 11 && !memcmp (identifier, "ecdsa-sha2-", 11))
|
||||||
{
|
{
|
||||||
ulongtobuf (nbuf, (ulong)strlen (identifier+11));
|
ulongtobuf (nbuf, (ulong)(buflen - 11));
|
||||||
put_membuf (mb, nbuf, 4);
|
put_membuf (mb, nbuf, 4);
|
||||||
put_membuf_str (mb, identifier+11);
|
put_membuf (mb, identifier+11, buflen - 11);
|
||||||
}
|
}
|
||||||
va_start (arg_ptr, identifier);
|
va_start (arg_ptr, identifier);
|
||||||
while ((a = va_arg (arg_ptr, gcry_mpi_t)))
|
while ((a = va_arg (arg_ptr, gcry_mpi_t)))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user