Crypt-GpgME

 view release on metacpan or  search on metacpan

perl_glue/perl_gpgme.c  view on Meta::CPAN

	{ GPGME_STATUS_NEED_PASSPHRASE, "need-passphrase" },
	{ GPGME_STATUS_VALIDSIG, "validsig" },
	{ GPGME_STATUS_SIG_ID, "sig-id" },
	{ GPGME_STATUS_ENC_TO, "enc-to" },
	{ GPGME_STATUS_NODATA, "nodata" },
	{ GPGME_STATUS_BAD_PASSPHRASE, "bad-passphrase" },
	{ GPGME_STATUS_NO_PUBKEY, "no-pubkey" },
	{ GPGME_STATUS_NO_SECKEY, "no-seckey" },
	{ GPGME_STATUS_NEED_PASSPHRASE_SYM, "need-passphrase-sym" },
	{ GPGME_STATUS_DECRYPTION_FAILED, "decryption-failed" },
	{ GPGME_STATUS_DECRYPTION_OKAY, "decryption-okay" },
	{ GPGME_STATUS_MISSING_PASSPHRASE, "missing-passphrase" },
	{ GPGME_STATUS_GOOD_PASSPHRASE, "good-passphrase" },
	{ GPGME_STATUS_GOODMDC, "goodmdc" },
	{ GPGME_STATUS_BADMDC, "badmdc" },
	{ GPGME_STATUS_ERRMDC, "errmdc" },
	{ GPGME_STATUS_IMPORTED, "imported" },
	{ GPGME_STATUS_IMPORT_OK, "import-ok" },
	{ GPGME_STATUS_IMPORT_PROBLEM, "status-import-problem" },
	{ GPGME_STATUS_IMPORT_RES, "import-res" },
	{ GPGME_STATUS_FILE_START, "file-start" },
	{ GPGME_STATUS_FILE_DONE, "file-done" },
	{ GPGME_STATUS_FILE_ERROR, "file-error" },

	{ GPGME_STATUS_BEGIN_DECRYPTION, "begin-decryption" },
	{ GPGME_STATUS_END_DECRYPTION, "end-decryption" },
	{ GPGME_STATUS_BEGIN_ENCRYPTION, "begin-encryption" },
	{ GPGME_STATUS_END_ENCRYPTION, "end-encryption" },

	{ GPGME_STATUS_DELETE_PROBLEM, "delete-problem" },
	{ GPGME_STATUS_GET_BOOL, "get-bool" },
	{ GPGME_STATUS_GET_LINE, "get-line" },
	{ GPGME_STATUS_GET_HIDDEN, "get-hidden" },
	{ GPGME_STATUS_GOT_IT, "got-it" },
	{ GPGME_STATUS_PROGRESS, "progress" },
	{ GPGME_STATUS_SIG_CREATED, "sig-created" },
	{ GPGME_STATUS_SESSION_KEY, "session-key" },
	{ GPGME_STATUS_NOTATION_NAME, "notation-name" },
	{ GPGME_STATUS_NOTATION_DATA, "notation-data" },
	{ GPGME_STATUS_POLICY_URL, "policy-url" },
	{ GPGME_STATUS_BEGIN_STREAM, "begin-stream" },
	{ GPGME_STATUS_END_STREAM, "end-stream" },
	{ GPGME_STATUS_KEY_CREATED, "key-created" },
	{ GPGME_STATUS_USERID_HINT, "userid-hint" },
	{ GPGME_STATUS_UNEXPECTED, "unexpected" },
	{ GPGME_STATUS_INV_RECP, "inv-recp" },
	{ GPGME_STATUS_NO_RECP, "no-recp" },
	{ GPGME_STATUS_ALREADY_SIGNED, "already-signed" },
	{ GPGME_STATUS_SIGEXPIRED, "sigexpired" },
	{ GPGME_STATUS_EXPSIG, "expsig" },
	{ GPGME_STATUS_EXPKEYSIG, "expkeysig" },
	{ GPGME_STATUS_TRUNCATED, "truncated" },
	{ GPGME_STATUS_ERROR, "error" },
	{ GPGME_STATUS_NEWSIG, "newsig" },
	{ GPGME_STATUS_REVKEYSIG, "revkeysig" },
	{ GPGME_STATUS_SIG_SUBPACKET, "sig-subpacket" },
	{ GPGME_STATUS_NEED_PASSPHRASE_PIN, "need-passphrase-pin" },
	{ GPGME_STATUS_SC_OP_FAILURE, "sc-op-failure" },
	{ GPGME_STATUS_SC_OP_SUCCESS, "sc-op-success" },
	{ GPGME_STATUS_CARDCTRL, "cardctrl" },
	{ GPGME_STATUS_BACKUP_KEY_CREATED, "backup-key-created" },
	{ GPGME_STATUS_PKA_TRUST_BAD, "pka-trust-bad" },
	{ GPGME_STATUS_PKA_TRUST_GOOD, "pka-trust-good" },

	{ GPGME_STATUS_PLAINTEXT, "plaintext" }
};

void
_perl_gpgme_call_xs (pTHX_ void (*subaddr) (pTHX_ CV *), CV *cv, SV **mark) {
	dSP;
	PUSHMARK (mark);
	(*subaddr) (aTHX_ cv);
	PUTBACK;
}

SV *
perl_gpgme_new_sv_from_ptr (void *ptr, const char *class) {
	SV *obj, *sv;
	HV *stash;

	obj = (SV *)newHV ();
	sv_magic (obj, 0, PERL_MAGIC_ext, (const char *)ptr, 0);
	sv = newRV_noinc (obj);
	stash = gv_stashpv (class, 0);
	sv_bless (sv, stash);

	return sv;
}

void *
perl_gpgme_get_ptr_from_sv (SV *sv, const char *class) {
	MAGIC *mg;

	mg = perl_gpgme_get_magic_from_sv (sv, class);

	return (void *)mg->mg_ptr;
}

MAGIC *
perl_gpgme_get_magic_from_sv (SV *sv, const char *class) {
	MAGIC *mg;

	if (!sv || !SvOK (sv) || !SvROK (sv)
	 || (class && !sv_derived_from (sv, class))
	 || !(mg = mg_find (SvRV (sv), PERL_MAGIC_ext))) {
		croak ("invalid object");
	}

	return mg;
}

void
perl_gpgme_assert_error (gpgme_error_t err) {
	if (err == GPG_ERR_NO_ERROR) {
		return;
	}

	croak ("%s: %s", gpgme_strsource (err), gpgme_strerror (err));
}

perl_gpgme_callback_t *



( run in 2.347 seconds using v1.01-cache-2.11-cpan-5a3173703d6 )