File: README

package info (click to toggle)
libgpgme-ruby 1.0.8-3
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 280 kB
  • ctags: 377
  • sloc: ansic: 2,186; ruby: 1,344; makefile: 143
file content (86 lines) | stat: -rw-r--r-- 2,304 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
= Ruby-GPGME

* http://rubyforge.org/projects/ruby-gpgme/

== Description

Ruby-GPGME is a Ruby language binding of GPGME (GnuPG Made Easy).

GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG
easier for applications. It provides a High-Level Crypto API for
encryption, decryption, signing, signature verification and key
management.

== Requirements

* Ruby 1.8 or later
* GPGME 1.1.2 or later
* gpg-agent (optional, but recommended)

== Installation

 $ gem install ruby-gpgme

or

 $ ruby extconf.rb
 $ make
 $ make install

== Examples

 examples/genkey.rb	Generate a key pair in your keyring.
 examples/keylist.rb	List your keyring like gpg --list-keys.
 examples/roundtrip.rb  Encrypt a plain text and then decrypt it.
 examples/sign.rb	Create a clear text signature.
 examples/verify.rb	Verify a clear text signature given from stdin.

== API

Ruby-GPGME provides three levels of API.  The highest level API is
close to the command line interface of GnuPG.  The mid level API looks
object-oriented (or rubyish).  The lowest level API is close to the C
interface of GPGME.

=== The highest level API

For example, to create a cleartext signature of the plaintext from
stdin and write the result to stdout can be written as follows.

 $ ruby -rgpgme -e 'GPGME.clearsign($stdin, $stdout)'

=== The mid level API

The same example can be rewritten in the mid level API as follows.

 $ ruby -rgpgme -e <<End
 ctx = GPGME::Ctx.new
 plain = GPGME::Data.from_io($stdin)
 sig = GPGME::Data.from_io($stdout)
 ctx.sign(plain, sig, GPGME::SIG_MODE_CLEAR)
 End

=== The lowest level API

The same example can be rewritten in the lowest level API as follows.

 $ ruby -rgpgme -e <<End
 ret = Array.new
 GPGME::gpgme_new(ret)
 ctx = ret.shift
 GPGME::gpgme_data_new_from_fd(ret, 0)
 plain = ret.shift
 GPGME::gpgme_data_new_from_fd(ret, 1)
 sig = ret.shift
 GPGME::gpgme_op_sign(ctx, plain, sig, GPGME::SIG_MODE_CLEAR)
 End

As you see, it's much harder to write a program in this API than the
highest level API.  However, if you are already familier with the C
interface of GPGME and want to control detailed behavior of GPGME, it
might be useful.

== License

The library itself is licensed under LGPLv2.1+.  See the file
COPYING.LESSER and each file for copyright and warranty information.