break;
case SILC_PKCS_FILE_BASE64:
- data = silc_pem_decode(filedata, filedata_len, &filedata_len);
+ data = silc_base64_decode(filedata, filedata_len, &filedata_len);
if (!data)
return FALSE;
filedata = data;
/* Get length */
ret = silc_buffer_unformat(&buf,
+ SILC_STR_ADVANCE,
SILC_STR_UI_INT(&totlen),
SILC_STR_END);
if (ret == -1)
/* Get algorithm name and identifier */
ret =
silc_buffer_unformat(&buf,
- SILC_STR_OFFSET(4),
+ SILC_STR_ADVANCE,
SILC_STR_UI16_NSTRING_ALLOC(&pkcs_name, &pkcs_len),
SILC_STR_UI16_NSTRING_ALLOC(&ident, &identifier_len),
SILC_STR_END);
goto err;
/* Get key data */
- silc_buffer_pull(&buf, 4 + 2 + pkcs_len + 2 + identifier_len);
keydata_len = silc_buffer_len(&buf);
ret = silc_buffer_unformat(&buf,
- SILC_STR_UI_XNSTRING(&key_data,
- keydata_len),
+ SILC_STR_DATA(&key_data, keydata_len),
SILC_STR_END);
if (ret == -1)
goto err;
break;
case SILC_PKCS_FILE_BASE64:
- data = silc_pem_encode_file(key, key_len);
+ data = silc_base64_encode_file(key, key_len);
if (!data)
return NULL;
silc_free(key);
break;
case SILC_PKCS_FILE_BASE64:
- data = silc_pem_decode(filedata, filedata_len, &len);
+ data = silc_base64_decode(filedata, filedata_len, &len);
if (!data)
return FALSE;
filedata = data;
break;
case SILC_PKCS_FILE_BASE64:
- data = silc_pem_encode_file(enc->data, silc_buffer_len(enc));
+ data = silc_base64_encode_file(enc->data, silc_buffer_len(enc));
if (!data) {
silc_buffer_clear(enc);
silc_buffer_free(enc);
return TRUE;
}
+/* PKCS #1 sign with appendix, hash OID included in the signature */
+
SilcBool silc_pkcs1_sign(void *private_key,
unsigned char *src,
SilcUInt32 src_len,
return FALSE;
}
+/* PKCS #1 verification with appendix. */
+
SilcBool silc_pkcs1_verify(void *public_key,
unsigned char *signature,
SilcUInt32 signature_len,