enum dcrypt_key_type key_type,
const ARRAY_TYPE(dcrypt_raw_key) *keys,
const char **error_r);
+ bool (*key_get_curve_public)(struct dcrypt_public_key *key,
+ const char **curve_r, const char **error_r);
};
void dcrypt_set_vfs(struct dcrypt_vfs *vfs);
return dcrypt_vfs->key_load_public_raw(key_r, key_type, keys,
error_r);
}
+
+bool dcrypt_key_get_curve_public(struct dcrypt_public_key *key,
+ const char **curve_r, const char **error_r)
+{
+ i_assert(dcrypt_vfs != NULL);
+ if (dcrypt_vfs->key_get_curve_public == NULL) {
+ *error_r = "Not implemented";
+ return FALSE;
+ }
+ return dcrypt_vfs->key_get_curve_public(key, curve_r, error_r);
+}
const ARRAY_TYPE(dcrypt_raw_key) *keys,
const char **error_r);
+/* for ECC only - return textual name or OID of used curve */
+bool dcrypt_key_get_curve_public(struct dcrypt_public_key *key,
+ const char **curve_r, const char **error_r);
+
bool dcrypt_key_string_get_info(const char *key_data,
enum dcrypt_key_format *format_r,
enum dcrypt_key_version *version_r,