int crypto_ed25519_export_key(const ed25519_key *key, byte *buffer, size_t *size) { if (size == NULL) return -1; if (*size < ED25519_KEY_SIZE + ED25519_PUB_KEY_SIZE) { *size = ED25519_KEY_SIZE + ED25519_PUB_KEY_SIZE; return -2; } word32 key_size = *size; int r = wc_ed25519_export_private((ed25519_key *)key, buffer, &key_size); *size = key_size; return r; }
/* export full private key and public key return 0 on success */ int wc_ed25519_export_key(ed25519_key* key, byte* priv, word32 *privSz, byte* pub, word32 *pubSz) { int ret; /* export 'full' private part */ ret = wc_ed25519_export_private(key, priv, privSz); if (ret != 0) return ret; /* export public part */ ret = wc_ed25519_export_public(key, pub, pubSz); return ret; }