diff options
author | Saturneric <[email protected]> | 2021-12-13 10:16:54 +0000 |
---|---|---|
committer | Saturneric <[email protected]> | 2021-12-13 10:16:54 +0000 |
commit | da0e403a6c6ff5ab201c239ea0b6d3ce45fc7c4d (patch) | |
tree | 8e7029d8dc13b54f16cefe50ac070fe32941a924 /src/gpg/function/GpgKeyImportExportor.cpp | |
parent | Fixed & Modified & Added. (diff) | |
download | GpgFrontend-da0e403a6c6ff5ab201c239ea0b6d3ce45fc7c4d.tar.gz GpgFrontend-da0e403a6c6ff5ab201c239ea0b6d3ce45fc7c4d.zip |
Update Translate & Added.
1. Added Export OpenSSH Format
2. Added Export Short Secret Key
3. Improve UI
Diffstat (limited to 'src/gpg/function/GpgKeyImportExportor.cpp')
-rw-r--r-- | src/gpg/function/GpgKeyImportExportor.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/gpg/function/GpgKeyImportExportor.cpp b/src/gpg/function/GpgKeyImportExportor.cpp index d8812839..89d3b002 100644 --- a/src/gpg/function/GpgKeyImportExportor.cpp +++ b/src/gpg/function/GpgKeyImportExportor.cpp @@ -130,3 +130,31 @@ bool GpgFrontend::GpgKeyImportExportor::ExportKey( std::swap(out_buffer, temp_out_buffer); return check_gpg_error_2_err_code(err) == GPG_ERR_NO_ERROR; } + +bool GpgFrontend::GpgKeyImportExportor::ExportKeyOpenSSH( + const GpgFrontend::GpgKey& key, + GpgFrontend::ByteArrayPtr& out_buffer) const { + GpgData data_out; + auto err = + gpgme_op_export(ctx, key.id().c_str(), GPGME_EXPORT_MODE_SSH, data_out); + + DLOG(INFO) << "read_bytes" << gpgme_data_seek(data_out, 0, SEEK_END); + + auto temp_out_buffer = data_out.Read2Buffer(); + std::swap(out_buffer, temp_out_buffer); + return check_gpg_error_2_err_code(err) == GPG_ERR_NO_ERROR; +} + +bool GpgFrontend::GpgKeyImportExportor::ExportSecretKeyShortest( + const GpgFrontend::GpgKey& key, + GpgFrontend::ByteArrayPtr& out_buffer) const { + GpgData data_out; + auto err = gpgme_op_export(ctx, key.id().c_str(), GPGME_EXPORT_MODE_MINIMAL, + data_out); + + DLOG(INFO) << "read_bytes" << gpgme_data_seek(data_out, 0, SEEK_END); + + auto temp_out_buffer = data_out.Read2Buffer(); + std::swap(out_buffer, temp_out_buffer); + return check_gpg_error_2_err_code(err) == GPG_ERR_NO_ERROR; +} |