85d7af8ff2
-- * Use wrapper types calling translation functions instead of TRANSLATE-{FROM,TO}-FOREIGN methods as they seem not to be called in some cases. * Use the (:STRUCT SOME-C-STRUCT) notation instead of the deprecated direct reference to SOME-C-STRUCT. * Add missing values in enums and bit fields. * Use cffi-grovel to define system types (SIZE-T, OFF-T, etc). * Wrap GPGME-DATA-T in a class (like contexts). * Use the FINALIZE function from trivial-garbage to free the C objects for contexts, keys and data automatically. * Make DATA-READ-CB and DATA-WRITE-CB run faster. * Update the README file. Signed-off-by: Guillaume LE VAILLANT <glv@posteo.net>
58 lines
1.4 KiB
Plaintext
58 lines
1.4 KiB
Plaintext
Common Lisp Support for GPGME
|
|
-----------------------------
|
|
|
|
Requirements:
|
|
|
|
ASDF Packaging Support
|
|
CFFI Foreign Function Interface
|
|
trivial-garbage Finalizers
|
|
gpg-error GPG Error Codes
|
|
|
|
Use with:
|
|
|
|
> (asdf:load-system "gpgme")
|
|
|
|
|
|
Examples
|
|
--------
|
|
|
|
(with-open-file (out "/tmp/myout"
|
|
:direction :output
|
|
:if-exists :supersede
|
|
:element-type '(unsigned-byte 8))
|
|
(with-context (ctx)
|
|
(setf (armorp ctx) t)
|
|
(op-export ctx "DEADBEEF" out)))
|
|
|
|
(with-context (ctx)
|
|
(with-output-to-string (out)
|
|
(setf (armorp ctx) t)
|
|
(op-export ctx "McTester" out)))
|
|
|
|
(gpgme:with-context (ctx :armor t)
|
|
(with-output-to-string (out)
|
|
(gpgme:op-export ctx "McTester" out)))
|
|
|
|
(gpgme:with-context (ctx :armor t)
|
|
(let ((recipient1 (gpgme:get-key ctx "DEADBEEF"))
|
|
(recipient2 (gpgme:get-key ctx "Alice"))
|
|
(message "Hello, world!"))
|
|
(with-output-to-string (out)
|
|
(with-input-from-string (in message)
|
|
(gpgme:op-encrypt ctx (vector recipient1 recipient2) in out)))))
|
|
|
|
(gpgme:with-context (ctx :armor t)
|
|
(let ((message "Hello, world!"))
|
|
(with-output-to-string (out)
|
|
(with-input-from-string (in message)
|
|
(gpgme:op-sign ctx in out)))))
|
|
|
|
|
|
TODO
|
|
----
|
|
|
|
* When GPGME defines macros for include cert values -2, -1, 0 and 1,
|
|
define lisp macros for them as well.
|
|
|
|
*
|