Skip to content

Commit d0fe595

Browse files
author
roman
committed
session server BUGIX fix x509 key null print
1 parent 4f9e442 commit d0fe595

File tree

3 files changed

+18
-14
lines changed

3 files changed

+18
-14
lines changed

src/session.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,13 +111,13 @@ nc_privkey_format_to_str(NC_PRIVKEY_FORMAT format)
111111
{
112112
switch (format) {
113113
case NC_PRIVKEY_FORMAT_RSA:
114-
return "RSA";
114+
return " RSA ";
115115
case NC_PRIVKEY_FORMAT_EC:
116-
return "EC";
116+
return " EC ";
117117
case NC_PRIVKEY_FORMAT_X509:
118-
return NULL;
118+
return " ";
119119
case NC_PRIVKEY_FORMAT_OPENSSH:
120-
return "OPENSSH";
120+
return " OPENSSH ";
121121
default:
122122
return NULL;
123123
}

src/session_server_ssh.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -75,33 +75,33 @@ base64der_privkey_to_tmp_file(const char *in, const char *privkey_format)
7575
}
7676

7777
/* write header */
78-
written = fwrite("-----BEGIN ", 1, 11, file);
78+
written = fwrite("-----BEGIN", 1, 10, file);
7979
if (privkey_format) {
8080
written += fwrite(privkey_format, 1, strlen(privkey_format), file);
81-
written += fwrite(" PRIVATE KEY-----\n", 1, 18, file);
82-
} else {
8381
written += fwrite("PRIVATE KEY-----\n", 1, 17, file);
82+
} else {
83+
written += fwrite(" PRIVATE KEY-----\n", 1, 18, file);
8484
}
8585

8686
/* write data */
8787
written += fwrite(in, 1, strlen(in), file);
8888

8989
/* write footer */
90-
written += fwrite("\n-----END ", 1, 10, file);
90+
written += fwrite("\n-----END", 1, 9, file);
9191
if (privkey_format) {
9292
written += fwrite(privkey_format, 1, strlen(privkey_format), file);
93-
written += fwrite(" PRIVATE KEY-----", 1, 17, file);
94-
} else {
9593
written += fwrite("PRIVATE KEY-----", 1, 16, file);
94+
} else {
95+
written += fwrite(" PRIVATE KEY-----", 1, 17, file);
9696
}
9797

9898
fclose(file);
9999

100100
/* checksum */
101101
if (privkey_format) {
102-
len = 11 + strlen(privkey_format) + 18 + strlen(in) + 10 + strlen(privkey_format) + 17;
102+
len = 10 + strlen(privkey_format) + 17 + strlen(in) + 9 + strlen(privkey_format) + 16;
103103
} else {
104-
len = 11 + 17 + strlen(in) + 10 + 16;
104+
len = 10 + 18 + strlen(in) + 9 + 17;
105105
}
106106

107107
if ((unsigned)written != len) {

src/session_server_tls.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,12 @@ base64der_to_privatekey(const char *in, const char *key_str)
137137
return NULL;
138138
}
139139

140-
if (asprintf(&buf, "%s%s%s%s%s%s%s", "-----BEGIN ", key_str, " PRIVATE KEY-----\n", in, "\n-----END ",
141-
key_str, " PRIVATE KEY-----") == -1) {
140+
if (!key_str) {
141+
/* avoid writing (null) for possibly unknown key formats */
142+
key_str = "";
143+
}
144+
if (asprintf(&buf, "%s%s%s%s%s%s%s", "-----BEGIN", key_str, "PRIVATE KEY-----\n", in, "\n-----END",
145+
key_str, "PRIVATE KEY-----") == -1) {
142146
return NULL;
143147
}
144148
bio = BIO_new_mem_buf(buf, strlen(buf));

0 commit comments

Comments
 (0)