use unsigned long for the length of a string

This commit is contained in:
Steffen Jaeckel 2019-10-02 15:52:16 +02:00
parent 27ec31d4f3
commit 9b6bf32f88
9 changed files with 20 additions and 18 deletions

View file

@ -7247,7 +7247,7 @@ The following enum is used to indicate a specific SSH data type
\begin{center}
\begin{small}
\begin{tabular}{|l|l|l|}
\hline \textbf{Definition} & \textbf{arg data Type} & \textbf{SSH Type} \\
\hline \textbf{Definition} & \textbf{arg data Type} & \textbf{SSH Type} \\
\hline LTC\_SSHDATA\_EOL & - & End of SSH data sequence. \\
\hline LTC\_SSHDATA\_BYTE & \texttt{unsigned char} & \texttt{byte} type \\
\hline LTC\_SSHDATA\_BOOLEAN & \texttt{unsigned char} & \texttt{boolean} type \\
@ -7284,7 +7284,8 @@ on function invocation to the length of the destination buffer
and after returning it will be filled with the number of octets written to the buffer.
The encoding function \texttt{ssh\_encode\_sequence\_multi()} expects its items to be a pair of \texttt{(type, data)},
except for the \texttt{string} resp. \texttt{name-list} type, which expects the triple \texttt{(type, data, size)}.
except for the \texttt{string} resp. \texttt{name-list} type, which expects the triple \texttt{(type, data, size)}
with \texttt{size} being of type \texttt{unsigned long}.
\begin{verbatim}
@ -7296,7 +7297,8 @@ on function invocation to the length of the sequence
and after returning it will be filled with the decoded number of octets.
The decoding function \texttt{ssh\_decode\_sequence\_multi()} expects its items to be a pair of \texttt{(type, data*)},
except for the \texttt{string} resp. \texttt{name-list} type, which expects the triple \texttt{(type, data, size*)}.
except for the \texttt{string} resp. \texttt{name-list} type, which expects the triple \texttt{(type, data, size*)}
with \texttt{size*} being of type \texttt{unsigned long*}.
\chapter{Miscellaneous}
\mysection{Base64 Encoding and Decoding}

View file

@ -240,7 +240,7 @@ int ecc_set_curve_by_size(int size, ecc_key *key);
int ecc_import_subject_public_key_info(const unsigned char *in, unsigned long inlen, ecc_key *key);
#ifdef LTC_SSH
int ecc_ssh_ecdsa_encode_name(char *buffer, ulong32 *buflen, const ecc_key *key);
int ecc_ssh_ecdsa_encode_name(char *buffer, unsigned long *buflen, const ecc_key *key);
#endif
/* low level functions */

View file

@ -20,7 +20,7 @@
Decode a SSH sequence using a VA list
@param in The input buffer
@param inlen [in/out] The length of the input buffer and on output the amount of decoded data
@remark <...> is of the form <type, data*> (int, <unsigned char*,ulong32*,ulong64*>) except for string&name-list <type, data, size*> (int, void*, ulong32*)
@remark <...> is of the form <type, data*> (int, <unsigned char*,ulong32*,ulong64*>) except for string&name-list <type, data, size*> (int, void*, unsigned long*)
@return CRYPT_OK on success
*/
int ssh_decode_sequence_multi(const unsigned char *in, unsigned long *inlen, ...)
@ -33,7 +33,7 @@ int ssh_decode_sequence_multi(const unsigned char *in, unsigned long *inlen, ...
char *sdata;
ulong32 *u32data;
ulong64 *u64data;
ulong32 *bufsize;
unsigned long *bufsize;
ulong32 size;
unsigned long remaining;
@ -124,7 +124,7 @@ int ssh_decode_sequence_multi(const unsigned char *in, unsigned long *inlen, ...
case LTC_SSHDATA_STRING:
case LTC_SSHDATA_NAMELIST:
sdata = vdata;
bufsize = va_arg(args, ulong32*);
bufsize = va_arg(args, unsigned long*);
if (bufsize == NULL) {
err = CRYPT_INVALID_ARG;
goto error;

View file

@ -20,7 +20,7 @@
Encode a SSH sequence using a VA list
@param out [out] Destination for data
@param outlen [in/out] Length of buffer and resulting length of output
@remark <...> is of the form <type, data> (int, <int,ulong32,ulong64>) except for string&name-list <type, data, size> (int, void*, ulong32)
@remark <...> is of the form <type, data> (int, <int,ulong32,ulong64>) except for string&name-list <type, data, size> (int, void*, unsigned long)
@return CRYPT_OK on success
*/
int ssh_encode_sequence_multi(unsigned char *out, unsigned long *outlen, ...)
@ -59,7 +59,7 @@ int ssh_encode_sequence_multi(unsigned char *out, unsigned long *outlen, ...)
case LTC_SSHDATA_STRING:
case LTC_SSHDATA_NAMELIST:
LTC_UNUSED_PARAM( va_arg(args, char*) );
size += va_arg(args, ulong32);
size += va_arg(args, unsigned long);
size += 4;
break;
case LTC_SSHDATA_MPINT:
@ -118,7 +118,7 @@ int ssh_encode_sequence_multi(unsigned char *out, unsigned long *outlen, ...)
case LTC_SSHDATA_STRING:
case LTC_SSHDATA_NAMELIST:
sdata = va_arg(args, char*);
size = va_arg(args, ulong32);
size = va_arg(args, unsigned long);
STORE32H(size, out);
out += 4;
XMEMCPY(out, sdata, size);

View file

@ -114,8 +114,8 @@ int ecc_recover_key(const unsigned char *sig, unsigned long siglen,
#ifdef LTC_SSH
else if (sigformat == LTC_ECCSIG_RFC5656) {
char name[64], name2[64];
ulong32 namelen = sizeof(name);
ulong32 name2len = sizeof(name2);
unsigned long namelen = sizeof(name);
unsigned long name2len = sizeof(name2);
/* Decode as SSH data sequence, per RFC4251 */
if ((err = ssh_decode_sequence_multi(sig, &siglen,

View file

@ -159,7 +159,7 @@ int ecc_sign_hash_ex(const unsigned char *in, unsigned long inlen,
else if (sigformat == LTC_ECCSIG_RFC5656) {
/* Get identifier string */
char name[64];
ulong32 namelen = sizeof(name);
unsigned long namelen = sizeof(name);
if ((err = ecc_ssh_ecdsa_encode_name(name, &namelen, key)) != CRYPT_OK) { goto errnokey; }
/* Store as SSH data sequence, per RFC4251 */

View file

@ -21,7 +21,7 @@
@param key A public or private ECC key
@return CRYPT_OK if successful
*/
int ecc_ssh_ecdsa_encode_name(char *buffer, ulong32 *buflen, const ecc_key *key)
int ecc_ssh_ecdsa_encode_name(char *buffer, unsigned long *buflen, const ecc_key *key)
{
char oidstr[64];
unsigned long oidlen = sizeof(oidstr);

View file

@ -100,8 +100,8 @@ int ecc_verify_hash_ex(const unsigned char *sig, unsigned long siglen,
#ifdef LTC_SSH
else if (sigformat == LTC_ECCSIG_RFC5656) {
char name[64], name2[64];
ulong32 namelen = sizeof(name);
ulong32 name2len = sizeof(name2);
unsigned long namelen = sizeof(name);
unsigned long name2len = sizeof(name2);
/* Decode as SSH data sequence, per RFC4251 */
if ((err = ssh_decode_sequence_multi(sig, &siglen,

View file

@ -61,7 +61,7 @@ static int _ssh_encoding_test(void)
{
unsigned char buffer[BUFSIZE];
unsigned long buflen;
ulong32 len;
unsigned long len;
void *v, *zero;
int err;
@ -200,7 +200,7 @@ static int _ssh_decoding_test(void)
{
char strbuf[BUFSIZE];
void *u, *v;
ulong32 size;
unsigned long size;
ulong32 tmp32;
ulong64 tmp64;
unsigned char tmp8;