mirror of
https://codeberg.org/scip/pcp.git
synced 2025-12-17 03:50:57 +01:00
added yaml and perl pubkey export formats (c and python will follow)
This commit is contained in:
@@ -344,7 +344,7 @@ void pcp_exportpublic(char *keyid, char *passwd, char *outfile, int format, int
|
||||
}
|
||||
|
||||
|
||||
if(is_foreign == 0 && sk->secret[0] == 0) {
|
||||
if(is_foreign == 0 && sk->secret[0] == 0 && format <= EXP_FORMAT_PBP) {
|
||||
/* decrypt the secret key */
|
||||
if(passwd != NULL) {
|
||||
sk = pcpkey_decrypt(sk, passwd);
|
||||
@@ -403,6 +403,18 @@ void pcp_exportpublic(char *keyid, char *passwd, char *outfile, int format, int
|
||||
goto errpcpexpu1;
|
||||
}
|
||||
}
|
||||
else if(format == EXP_FORMAT_YAML) {
|
||||
exported_pk = pcp_export_yaml_pub(sk);
|
||||
if(exported_pk != NULL) {
|
||||
fprintf(out, "%s", buffer_get_str(exported_pk));
|
||||
}
|
||||
}
|
||||
else if(format == EXP_FORMAT_PERL) {
|
||||
exported_pk = pcp_export_perl_pub(sk);
|
||||
if(exported_pk != NULL) {
|
||||
fprintf(out, "%s", buffer_get_str(exported_pk));
|
||||
}
|
||||
}
|
||||
|
||||
errpcpexpu1:
|
||||
buffer_free(exported_pk);
|
||||
|
||||
14
src/pcp.c
14
src/pcp.c
@@ -114,7 +114,7 @@ int main (int argc, char **argv) {
|
||||
{ NULL, 0, NULL, 0 }
|
||||
};
|
||||
|
||||
while ((opt = getopt_long(argc, argv, "klV:vdehsO:i:I:pSPRtEx:DzZr:gcymf:b1",
|
||||
while ((opt = getopt_long(argc, argv, "klV:vdehsO:i:I:pSPRtEx:DzZr:gcymf:b1F:",
|
||||
longopts, NULL)) != -1) {
|
||||
|
||||
switch (opt) {
|
||||
@@ -187,6 +187,18 @@ int main (int argc, char **argv) {
|
||||
else if(strncmp(optarg, "pcp", 3) == 0) {
|
||||
exportformat = EXP_FORMAT_NATIVE;
|
||||
}
|
||||
else if(strncmp(optarg, "yaml", 3) == 0) {
|
||||
exportformat = EXP_FORMAT_YAML;
|
||||
}
|
||||
else if(strncmp(optarg, "c", 3) == 0) {
|
||||
exportformat = EXP_FORMAT_C;
|
||||
}
|
||||
else if(strncmp(optarg, "py", 3) == 0) {
|
||||
exportformat = EXP_FORMAT_PY;
|
||||
}
|
||||
else if(strncmp(optarg, "perl", 3) == 0) {
|
||||
exportformat = EXP_FORMAT_PERL;
|
||||
}
|
||||
else {
|
||||
warn("Unknown export format specified, using native\n");
|
||||
exportformat = EXP_FORMAT_NATIVE;
|
||||
|
||||
Reference in New Issue
Block a user