X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb-perl/blobdiff_plain/fcd15e0b7a3d0f0ca2f30953573f8d1f6b8e8bd2..bfdf19cbde6d9f5cdb740d258fcc439a4a412ab0:/keystuff.c diff --git a/keystuff.c b/keystuff.c index beb9a74..73e850f 100644 --- a/keystuff.c +++ b/keystuff.c @@ -64,13 +64,29 @@ SV *keyerr(int rc) SV *sv; if (!rc) return (&PL_sv_yes); - sv = perl_get_sv("Catacomb::Key::error", TRUE); + sv = perl_get_sv("Catacomb::keyerror", TRUE); sv_setiv(sv, rc); sv_setpv(sv, key_strerror(rc)); SvIOK_on(sv); return (&PL_sv_undef); } +const char *keydata_type(Key_Data *kd) +{ + const char *cls; + if (!kd) return (0); + switch (kd->e & KF_ENCMASK) { + case KENC_BINARY: cls = "Catacomb::Key::Data::Binary"; break; + case KENC_ENCRYPT: cls = "Catacomb::Key::Data::Encrypted"; break; + case KENC_EC: cls = "Catacomb::Key::Data::EC"; break; + case KENC_STRING: cls = "Catacomb::Key::Data::String"; break; + case KENC_STRUCT: cls = "Catacomb::Key::Data::Structured"; break; + case KENC_MP: cls = "Catacomb::Key::Data::MP"; break; + default: abort(); + } + return (cls); +} + void keyfile_dec(Key_File *kf) { kf->ref--; @@ -80,6 +96,4 @@ void keyfile_dec(Key_File *kf) } } - - /*----- That's all, folks -------------------------------------------------*/