memcpy(list + len, ",", 1);
len++;
}
+ list[len - 1] = 0;
}
- list[len - 1] = 0;
-
return list;
}
while (cp) {
len = strcspn(cp, ",");
if (len - 1 >= 0 && cp[len - 1] == '\\') {
- cp += len + 1;
- continue;
+ while (cp) {
+ cp += len + 1;
+ len = strcspn(cp, ",") + len;
+ if (len - 1 >= 0 && cp[len - 1] != '\\')
+ break;
+ }
}
item = silc_calloc(len + 1, sizeof(char));
return FALSE;
}
+/* Compares two public keys and returns TRUE if they are same key, and
+ FALSE if they are not same. */
+
+bool silc_pkcs_public_key_compare(SilcPublicKey key1, SilcPublicKey key2)
+{
+ if (key1 == key2)
+ return TRUE;
+
+ if (key1->len == key2->len &&
+ key1->name && key2->name && key1->identifier && key2->identifier &&
+ !strcmp(key1->name, key2->name) &&
+ !strcmp(key1->identifier, key2->identifier) &&
+ !memcmp(key1->pk, key2->pk, key1->pk_len) &&
+ key1->pk_len == key2->pk_len)
+ return TRUE;
+
+ return FALSE;
+}
+
/* Encodes SILC private key from SilcPrivateKey. Returns the encoded data. */
unsigned char *
SILC_STR_END);
/* Save into file */
- if (silc_file_write(filename, buf->data, buf->len)) {
+ if (silc_file_writefile(filename, buf->data, buf->len)) {
silc_buffer_free(buf);
return FALSE;
}
SILC_STR_END);
/* Save into a file */
- if (silc_file_write_mode(filename, buf->data, buf->len, 0600)) {
+ if (silc_file_writefile_mode(filename, buf->data, buf->len, 0600)) {
silc_buffer_free(buf);
return FALSE;
}
unsigned char *cp, *old, *data, byte;
uint32 i, data_len, len;
- old = data = silc_file_read(filename, &data_len);
+ old = data = silc_file_readfile(filename, &data_len);
if (!data)
return FALSE;
unsigned char *cp, *old, *data, byte;
uint32 i, data_len, len;
- old = data = silc_file_read(filename, &data_len);
+ old = data = silc_file_readfile(filename, &data_len);
if (!data)
return FALSE;