Perl interface to GnuPG
GnuPG::Interface and its associated modules are designed to provide an
object-oriented method for interacting with GnuPG, being able to perform
functions such as but not limited to encrypting, signing, decryption,
verification, and key-listing parsing.
How Data Member Accessor Methods are Created
Each module in the GnuPG::Interface bundle relies on Any::Moose to
generate the get/set methods used to set the object's data members.
_This is very important to realize._ This means that any data member
which is a list has special methods assigned to it for pushing,
popping, and clearing the list.
Understanding Bidirectional Communication
It is also imperative to realize that this package uses interprocess
communication methods similar to those used in the IPC::Open3 manpage
and the perlipc/"Bidirectional Communication with Another Process"
manpage, and that users of this package need to understand how to use
this method because this package does not abstract these methods for
the user greatly. This package is not designed to abstract this away
entirely (partly for security purposes), but rather to simply help
create 'proper', clean calls to GnuPG, and to implement key-listing
parsing. Please see the perlipc/"Bidirectional Communication with
Another Process" manpage to learn how to deal with these methods.
Using this package to do message processing generally invovlves
creating a GnuPG::Interface object, creating a GnuPG::Handles object,
setting some options in its *options* data member, and then calling a
method which invokes GnuPG, such as *clearsign*. One then interacts
with with the handles appropriately, as described in the
perlipc/"Bidirectional Communication with Another Process" manpage.