gpgme 2.0.5 → 2.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/gpgme/extconf.rb +6 -2
- data/ext/gpgme/gpgme_n.c +151 -0
- data/lib/gpgme/constants.rb +44 -20
- data/lib/gpgme/ctx.rb +7 -0
- data/lib/gpgme/engine.rb +11 -0
- data/ports/archives/gpgme-1.5.0.tar.bz2 +0 -0
- data/ports/archives/libgpg-error-1.13.tar.bz2 +0 -0
- metadata +12 -6
- data/ports/archives/gpgme-1.4.3.tar.bz2 +0 -0
- data/ports/archives/libgpg-error-1.12.tar.bz2 +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f4029d3a91ef53cbba61b60cadc0ae5a990de620
|
4
|
+
data.tar.gz: d54ecce41c072bc922f50be17510f209ca0327c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d6af9b82d68f349f8d774683f04740036d743c3c2801f49e9a53d3b94af26d8b045a31e4b23e737f6b21418bba26f7c038ea59bef8650125fbe7b160aa52c624
|
7
|
+
data.tar.gz: c38ed6111d7ebb79e87276c81fac76bc5e38af4e61065a1042c3fa8d297040e9c796ad50f0b25a5b363a0801bf4d3fb9b904d5169663ee80e8b12906b586ee0c
|
data/ext/gpgme/extconf.rb
CHANGED
@@ -62,7 +62,7 @@ EOS
|
|
62
62
|
require 'rubygems'
|
63
63
|
require 'mini_portile'
|
64
64
|
|
65
|
-
libgpg_error_recipe = MiniPortile.new('libgpg-error', '1.
|
65
|
+
libgpg_error_recipe = MiniPortile.new('libgpg-error', '1.13').tap do |recipe|
|
66
66
|
recipe.target = File.join(ROOT, "ports")
|
67
67
|
recipe.files = ["ftp://ftp.gnupg.org/gcrypt/#{recipe.name}/#{recipe.name}-#{recipe.version}.tar.bz2"]
|
68
68
|
recipe.configure_options = [
|
@@ -96,7 +96,7 @@ EOS
|
|
96
96
|
recipe.activate
|
97
97
|
end
|
98
98
|
|
99
|
-
gpgme_recipe = MiniPortile.new('gpgme', '1.
|
99
|
+
gpgme_recipe = MiniPortile.new('gpgme', '1.5.0').tap do |recipe|
|
100
100
|
recipe.target = File.join(ROOT, "ports")
|
101
101
|
recipe.files = ["ftp://ftp.gnupg.org/gcrypt/#{recipe.name}/#{recipe.name}-#{recipe.version}.tar.bz2"]
|
102
102
|
recipe.configure_options = [
|
@@ -104,6 +104,10 @@ EOS
|
|
104
104
|
'--enable-static',
|
105
105
|
"--with-gpg-error-prefix=#{libgpg_error_recipe.path}",
|
106
106
|
"--with-libassuan-prefix=#{libassuan_recipe.path}",
|
107
|
+
# GPGME 1.5.0 assumes gpgsm is present if gpgconf is found.
|
108
|
+
# However, on some systems (e.g. Debian), they are splitted into
|
109
|
+
# separate packages.
|
110
|
+
'--disable-gpgsm-test',
|
107
111
|
"CFLAGS='-fPIC #{ENV["CFLAGS"]}'",
|
108
112
|
]
|
109
113
|
checkpoint = "#{recipe.target}/#{recipe.name}-#{recipe.version}-#{recipe.host}.installed"
|
data/ext/gpgme/gpgme_n.c
CHANGED
@@ -132,6 +132,15 @@ static VALUE cEngineInfo,
|
|
132
132
|
cImportStatus,
|
133
133
|
cImportResult;
|
134
134
|
|
135
|
+
#if defined(GPGME_VERSION_NUMBER) && GPGME_VERSION_NUMBER >= 0x010500
|
136
|
+
static VALUE
|
137
|
+
rb_s_gpgme_get_dirinfo (VALUE dummy, VALUE vwhat)
|
138
|
+
{
|
139
|
+
const char *result = gpgme_get_dirinfo (StringValueCStr(vwhat));
|
140
|
+
return result ? rb_str_new2 (result) : Qnil;
|
141
|
+
}
|
142
|
+
#endif
|
143
|
+
|
135
144
|
static VALUE
|
136
145
|
rb_s_gpgme_check_version (VALUE dummy, VALUE vreq)
|
137
146
|
{
|
@@ -809,6 +818,10 @@ save_gpgme_key_attrs (VALUE vkey, gpgme_key_t key)
|
|
809
818
|
rb_iv_set (vsubkey, "@fpr", rb_str_new2 (subkey->fpr));
|
810
819
|
rb_iv_set (vsubkey, "@timestamp", LONG2NUM(subkey->timestamp));
|
811
820
|
rb_iv_set (vsubkey, "@expires", LONG2NUM(subkey->expires));
|
821
|
+
#if defined(GPGME_VERSION_NUMBER) && GPGME_VERSION_NUMBER >= 0x010500
|
822
|
+
if (subkey->curve)
|
823
|
+
rb_iv_set (vsubkey, "@curve", rb_str_new2 (subkey->curve));
|
824
|
+
#endif
|
812
825
|
rb_ary_push (vsubkeys, vsubkey);
|
813
826
|
}
|
814
827
|
vuids = rb_ary_new ();
|
@@ -1988,6 +2001,96 @@ rb_s_gpgme_wait (VALUE dummy, VALUE vctx, VALUE rstatus, VALUE vhang)
|
|
1988
2001
|
return Qnil;
|
1989
2002
|
}
|
1990
2003
|
|
2004
|
+
#if defined(GPGME_VERSION_NUMBER) && GPGME_VERSION_NUMBER >= 0x010500
|
2005
|
+
static VALUE
|
2006
|
+
rb_s_gpgme_op_spawn_start (VALUE dummy, VALUE vctx, VALUE vfile,
|
2007
|
+
VALUE vargv, VALUE vdatain, VALUE vdataout,
|
2008
|
+
VALUE vdataerr, VALUE vflags)
|
2009
|
+
{
|
2010
|
+
gpgme_ctx_t ctx;
|
2011
|
+
const char *file;
|
2012
|
+
const char **argv;
|
2013
|
+
gpgme_data_t datain = NULL;
|
2014
|
+
gpgme_data_t dataout = NULL;
|
2015
|
+
gpgme_data_t dataerr = NULL;
|
2016
|
+
gpgme_error_t err;
|
2017
|
+
|
2018
|
+
CHECK_KEYLIST_NOT_IN_PROGRESS(vctx);
|
2019
|
+
|
2020
|
+
UNWRAP_GPGME_CTX(vctx, ctx);
|
2021
|
+
if (!ctx)
|
2022
|
+
rb_raise (rb_eArgError, "released ctx");
|
2023
|
+
|
2024
|
+
file = StringValueCStr(vfile);
|
2025
|
+
|
2026
|
+
if (NIL_P(vargv))
|
2027
|
+
argv = NULL;
|
2028
|
+
else
|
2029
|
+
{
|
2030
|
+
int i;
|
2031
|
+
|
2032
|
+
argv = ALLOC_N(const char *, RARRAY_LEN(vargv) + 1);
|
2033
|
+
for (i = 0; i < RARRAY_LEN(vargv); i++)
|
2034
|
+
argv[i] = StringValueCStr(RARRAY_PTR(vargv)[i]);
|
2035
|
+
argv[i] = NULL;
|
2036
|
+
}
|
2037
|
+
|
2038
|
+
UNWRAP_GPGME_DATA(vdatain, datain);
|
2039
|
+
UNWRAP_GPGME_DATA(vdataout, dataout);
|
2040
|
+
UNWRAP_GPGME_DATA(vdataerr, dataerr);
|
2041
|
+
|
2042
|
+
err = gpgme_op_spawn_start (ctx, file, argv, datain, dataout, dataerr,
|
2043
|
+
NUM2INT(vflags));
|
2044
|
+
if (argv)
|
2045
|
+
xfree (argv);
|
2046
|
+
return LONG2NUM(err);
|
2047
|
+
}
|
2048
|
+
|
2049
|
+
static VALUE
|
2050
|
+
rb_s_gpgme_op_spawn (VALUE dummy, VALUE vctx, VALUE vfile,
|
2051
|
+
VALUE vargv, VALUE vdatain, VALUE vdataout,
|
2052
|
+
VALUE vdataerr, VALUE vflags)
|
2053
|
+
{
|
2054
|
+
gpgme_ctx_t ctx;
|
2055
|
+
const char *file;
|
2056
|
+
const char **argv;
|
2057
|
+
gpgme_data_t datain = NULL;
|
2058
|
+
gpgme_data_t dataout = NULL;
|
2059
|
+
gpgme_data_t dataerr = NULL;
|
2060
|
+
gpgme_error_t err;
|
2061
|
+
|
2062
|
+
CHECK_KEYLIST_NOT_IN_PROGRESS(vctx);
|
2063
|
+
|
2064
|
+
UNWRAP_GPGME_CTX(vctx, ctx);
|
2065
|
+
if (!ctx)
|
2066
|
+
rb_raise (rb_eArgError, "released ctx");
|
2067
|
+
|
2068
|
+
file = StringValueCStr(vfile);
|
2069
|
+
|
2070
|
+
if (NIL_P(vargv))
|
2071
|
+
argv = NULL;
|
2072
|
+
else
|
2073
|
+
{
|
2074
|
+
int i;
|
2075
|
+
|
2076
|
+
argv = ALLOC_N(const char *, RARRAY_LEN(vargv) + 1);
|
2077
|
+
for (i = 0; i < RARRAY_LEN(vargv); i++)
|
2078
|
+
argv[i] = StringValueCStr(RARRAY_PTR(vargv)[i]);
|
2079
|
+
argv[i] = NULL;
|
2080
|
+
}
|
2081
|
+
|
2082
|
+
UNWRAP_GPGME_DATA(vdatain, datain);
|
2083
|
+
UNWRAP_GPGME_DATA(vdataout, dataout);
|
2084
|
+
UNWRAP_GPGME_DATA(vdataerr, dataerr);
|
2085
|
+
|
2086
|
+
err = gpgme_op_spawn (ctx, file, argv, datain, dataout, dataerr,
|
2087
|
+
NUM2INT(vflags));
|
2088
|
+
if (argv)
|
2089
|
+
xfree (argv);
|
2090
|
+
return LONG2NUM(err);
|
2091
|
+
}
|
2092
|
+
#endif
|
2093
|
+
|
1991
2094
|
void
|
1992
2095
|
Init_gpgme_n (void)
|
1993
2096
|
{
|
@@ -1995,6 +2098,10 @@ Init_gpgme_n (void)
|
|
1995
2098
|
|
1996
2099
|
mGPGME = rb_define_module ("GPGME");
|
1997
2100
|
|
2101
|
+
#if defined(GPGME_VERSION_NUMBER) && GPGME_VERSION_NUMBER >= 0x010500
|
2102
|
+
rb_define_module_function (mGPGME, "gpgme_get_dirinfo",
|
2103
|
+
rb_s_gpgme_get_dirinfo, 1);
|
2104
|
+
#endif
|
1998
2105
|
rb_define_module_function (mGPGME, "gpgme_check_version",
|
1999
2106
|
rb_s_gpgme_check_version, 1);
|
2000
2107
|
rb_define_module_function (mGPGME, "gpgme_engine_check_version",
|
@@ -2238,11 +2345,23 @@ Init_gpgme_n (void)
|
|
2238
2345
|
rb_define_module_function (mGPGME, "gpgme_wait",
|
2239
2346
|
rb_s_gpgme_wait, 3);
|
2240
2347
|
|
2348
|
+
/* Running other Programs */
|
2349
|
+
#if defined(GPGME_VERSION_NUMBER) && GPGME_VERSION_NUMBER >= 0x010500
|
2350
|
+
rb_define_module_function (mGPGME, "gpgme_op_spawn",
|
2351
|
+
rb_s_gpgme_op_spawn, 7);
|
2352
|
+
rb_define_module_function (mGPGME, "gpgme_op_spawn_start",
|
2353
|
+
rb_s_gpgme_op_spawn_start, 7);
|
2354
|
+
#endif
|
2355
|
+
|
2241
2356
|
/* gpgme_pubkey_algo_t */
|
2242
2357
|
rb_define_const (mGPGME, "GPGME_PK_RSA", INT2FIX(GPGME_PK_RSA));
|
2243
2358
|
rb_define_const (mGPGME, "GPGME_PK_DSA", INT2FIX(GPGME_PK_DSA));
|
2244
2359
|
rb_define_const (mGPGME, "GPGME_PK_ELG", INT2FIX(GPGME_PK_ELG));
|
2245
2360
|
rb_define_const (mGPGME, "GPGME_PK_ELG_E", INT2FIX(GPGME_PK_ELG_E));
|
2361
|
+
/* This algorithm was added in 1.5.0. */
|
2362
|
+
#ifdef GPGME_PK_ECC
|
2363
|
+
rb_define_const (mGPGME, "GPGME_PK_ECC", INT2FIX(GPGME_PK_ECC));
|
2364
|
+
#endif
|
2246
2365
|
|
2247
2366
|
/* gpgme_hash_algo_t */
|
2248
2367
|
rb_define_const (mGPGME, "GPGME_MD_MD5", INT2FIX(GPGME_MD_MD5));
|
@@ -2251,6 +2370,10 @@ Init_gpgme_n (void)
|
|
2251
2370
|
rb_define_const (mGPGME, "GPGME_MD_MD2", INT2FIX(GPGME_MD_MD2));
|
2252
2371
|
rb_define_const (mGPGME, "GPGME_MD_TIGER", INT2FIX(GPGME_MD_TIGER));
|
2253
2372
|
rb_define_const (mGPGME, "GPGME_MD_HAVAL", INT2FIX(GPGME_MD_HAVAL));
|
2373
|
+
/* This algorithm was added in 1.5.0. */
|
2374
|
+
#ifdef GPGME_MD_SHA224
|
2375
|
+
rb_define_const (mGPGME, "GPGME_MD_SHA224", INT2FIX(GPGME_MD_SHA224));
|
2376
|
+
#endif
|
2254
2377
|
rb_define_const (mGPGME, "GPGME_MD_SHA256", INT2FIX(GPGME_MD_SHA256));
|
2255
2378
|
rb_define_const (mGPGME, "GPGME_MD_SHA384", INT2FIX(GPGME_MD_SHA384));
|
2256
2379
|
rb_define_const (mGPGME, "GPGME_MD_SHA512", INT2FIX(GPGME_MD_SHA512));
|
@@ -2497,6 +2620,11 @@ Init_gpgme_n (void)
|
|
2497
2620
|
rb_define_const (mGPGME, "GPGME_PROTOCOL_ASSUAN",
|
2498
2621
|
INT2FIX(GPGME_PROTOCOL_ASSUAN))
|
2499
2622
|
#endif
|
2623
|
+
/* This protocol was added in 1.5.0. */
|
2624
|
+
#ifdef GPGME_PROTOCOL_SPAWN
|
2625
|
+
rb_define_const (mGPGME, "GPGME_PROTOCOL_SPAWN",
|
2626
|
+
INT2FIX(GPGME_PROTOCOL_SPAWN));
|
2627
|
+
#endif
|
2500
2628
|
|
2501
2629
|
/* gpgme_status_code_t */
|
2502
2630
|
rb_define_const (mGPGME, "GPGME_STATUS_EOF",
|
@@ -2653,6 +2781,21 @@ Init_gpgme_n (void)
|
|
2653
2781
|
rb_define_const (mGPGME, "GPGME_STATUS_PKA_TRUST_GOOD",
|
2654
2782
|
INT2FIX(GPGME_STATUS_PKA_TRUST_GOOD));
|
2655
2783
|
#endif
|
2784
|
+
/* These status codes were added in 1.5.0. */
|
2785
|
+
#if defined(GPGME_VERSION_NUMBER) && GPGME_VERSION_NUMBER >= 0x010500
|
2786
|
+
rb_define_const (mGPGME, "GPGME_STATUS_PLAINTEXT_LENGTH",
|
2787
|
+
INT2FIX(GPGME_STATUS_PLAINTEXT_LENGTH));
|
2788
|
+
rb_define_const (mGPGME, "GPGME_STATUS_MOUNTPOINT",
|
2789
|
+
INT2FIX(GPGME_STATUS_MOUNTPOINT));
|
2790
|
+
rb_define_const (mGPGME, "GPGME_STATUS_PINENTRY_LAUNCHED",
|
2791
|
+
INT2FIX(GPGME_STATUS_PINENTRY_LAUNCHED));
|
2792
|
+
rb_define_const (mGPGME, "GPGME_STATUS_ATTRIBUTE",
|
2793
|
+
INT2FIX(GPGME_STATUS_ATTRIBUTE));
|
2794
|
+
rb_define_const (mGPGME, "GPGME_STATUS_BEGIN_SIGNING",
|
2795
|
+
INT2FIX(GPGME_STATUS_BEGIN_SIGNING));
|
2796
|
+
rb_define_const (mGPGME, "GPGME_STATUS_KEY_NOT_CREATED",
|
2797
|
+
INT2FIX(GPGME_STATUS_KEY_NOT_CREATED));
|
2798
|
+
#endif
|
2656
2799
|
|
2657
2800
|
/* The available keylist mode flags. */
|
2658
2801
|
rb_define_const (mGPGME, "GPGME_KEYLIST_MODE_LOCAL",
|
@@ -2705,4 +2848,12 @@ Init_gpgme_n (void)
|
|
2705
2848
|
rb_define_const (mGPGME, "GPGME_PINENTRY_MODE_LOOPBACK",
|
2706
2849
|
INT2FIX(GPGME_PINENTRY_MODE_LOOPBACK));
|
2707
2850
|
#endif
|
2851
|
+
|
2852
|
+
/* These flags were added in 1.5.0. */
|
2853
|
+
#if defined(GPGME_VERSION_NUMBER) && GPGME_VERSION_NUMBER >= 0x010500
|
2854
|
+
rb_define_const (mGPGME, "GPGME_SPAWN_DETACHED",
|
2855
|
+
INT2FIX(GPGME_SPAWN_DETACHED));
|
2856
|
+
rb_define_const (mGPGME, "GPGME_SPAWN_ALLOW_SET_FG",
|
2857
|
+
INT2FIX(GPGME_SPAWN_ALLOW_SET_FG));
|
2858
|
+
#endif
|
2708
2859
|
}
|
data/lib/gpgme/constants.rb
CHANGED
@@ -64,33 +64,35 @@ module GPGME
|
|
64
64
|
MD_RMD160 = GPGME_MD_RMD160
|
65
65
|
MD_SHA1 = GPGME_MD_SHA1
|
66
66
|
MD_SHA256 = GPGME_MD_SHA256
|
67
|
+
if defined?(MD_SHA224)
|
68
|
+
MD_SHA224 = GPGME_MD_SHA224
|
69
|
+
end
|
67
70
|
MD_SHA384 = GPGME_MD_SHA384
|
68
71
|
MD_SHA512 = GPGME_MD_SHA512
|
69
72
|
MD_TIGER = GPGME_MD_TIGER
|
70
|
-
if defined?(
|
73
|
+
if defined?(gpgme_set_pinentry_mode)
|
71
74
|
PINENTRY_MODE_DEFAULT = GPGME_PINENTRY_MODE_DEFAULT
|
72
|
-
end
|
73
|
-
if defined?(GPGME_PINENTRY_MODE_ASK)
|
74
75
|
PINENTRY_MODE_ASK = GPGME_PINENTRY_MODE_ASK
|
75
|
-
end
|
76
|
-
if defined?(GPGME_PINENTRY_MODE_CANCEL)
|
77
76
|
PINENTRY_MODE_CANCEL = GPGME_PINENTRY_MODE_CANCEL
|
78
|
-
end
|
79
|
-
if defined?(GPGME_PINENTRY_MODE_ERROR)
|
80
77
|
PINENTRY_MODE_ERROR = GPGME_PINENTRY_MODE_ERROR
|
81
|
-
end
|
82
|
-
if defined?(GPGME_PINENTRY_MODE_LOOPBACK)
|
83
78
|
PINENTRY_MODE_LOOPBACK = GPGME_PINENTRY_MODE_LOOPBACK
|
79
|
+
PINENTRY_MODE_NAMES = {
|
80
|
+
PINENTRY_MODE_DEFAULT => :default,
|
81
|
+
PINENTRY_MODE_ASK => :ask,
|
82
|
+
PINENTRY_MODE_CANCEL => :cancel,
|
83
|
+
PINENTRY_MODE_ERROR => :error,
|
84
|
+
PINENTRY_MODE_LOOPBACK => :loopback
|
85
|
+
}
|
84
86
|
end
|
85
87
|
PK_DSA = GPGME_PK_DSA
|
86
88
|
PK_ELG = GPGME_PK_ELG
|
87
89
|
PK_ELG_E = GPGME_PK_ELG_E
|
88
90
|
PK_RSA = GPGME_PK_RSA
|
91
|
+
if defined?(GPGME_PK_ECC)
|
92
|
+
PK_ECC = GPGME_PK_ECC
|
93
|
+
end
|
89
94
|
PROTOCOL_CMS = GPGME_PROTOCOL_CMS
|
90
95
|
PROTOCOL_OpenPGP = GPGME_PROTOCOL_OpenPGP
|
91
|
-
if defined?(GPGME_PROTOCOL_ASSUAN)
|
92
|
-
PROTOCOL_ASSUAN = GPGME_PROTOCOL_ASSUAN
|
93
|
-
end
|
94
96
|
SIGSUM_BAD_POLICY = GPGME_SIGSUM_BAD_POLICY
|
95
97
|
SIGSUM_CRL_MISSING = GPGME_SIGSUM_CRL_MISSING
|
96
98
|
SIGSUM_CRL_TOO_OLD = GPGME_SIGSUM_CRL_TOO_OLD
|
@@ -169,6 +171,24 @@ module GPGME
|
|
169
171
|
if defined?(GPGME_STATUS_PKA_TRUST_GOOD)
|
170
172
|
STATUS_PKA_TRUST_GOOD = GPGME_STATUS_PKA_TRUST_GOOD
|
171
173
|
end
|
174
|
+
if defined?(GPGME_STATUS_PLAINTEXT_LENGTH)
|
175
|
+
STATUS_PLAINTEXT_LENGTH = GPGME_STATUS_PLAINTEXT_LENGTH
|
176
|
+
end
|
177
|
+
if defined?(GPGME_STATUS_MOUNTPOINT)
|
178
|
+
STATUS_MOUNTPOINT = GPGME_STATUS_MOUNTPOINT
|
179
|
+
end
|
180
|
+
if defined?(GPGME_STATUS_PINENTRY_LAUNCHED)
|
181
|
+
STATUS_PINENTRY_LAUNCHED = GPGME_STATUS_PINENTRY_LAUNCHED
|
182
|
+
end
|
183
|
+
if defined?(GPGME_STATUS_ATTRIBUTE)
|
184
|
+
STATUS_ATTRIBUTE = GPGME_STATUS_ATTRIBUTE
|
185
|
+
end
|
186
|
+
if defined?(GPGME_STATUS_BEGIN_SIGNING)
|
187
|
+
STATUS_BEGIN_SIGNING = GPGME_STATUS_BEGIN_SIGNING
|
188
|
+
end
|
189
|
+
if defined?(GPGME_STATUS_KEY_NOT_CREATED)
|
190
|
+
STATUS_KEY_NOT_CREATED = GPGME_STATUS_KEY_NOT_CREATED
|
191
|
+
end
|
172
192
|
STATUS_POLICY_URL = GPGME_STATUS_POLICY_URL
|
173
193
|
STATUS_PROGRESS = GPGME_STATUS_PROGRESS
|
174
194
|
STATUS_RSA_OR_IDEA = GPGME_STATUS_RSA_OR_IDEA
|
@@ -201,6 +221,18 @@ module GPGME
|
|
201
221
|
PROTOCOL_CMS => :CMS
|
202
222
|
}
|
203
223
|
|
224
|
+
if defined?(GPGME_PROTOCOL_ASSUAN)
|
225
|
+
PROTOCOL_ASSUAN = GPGME_PROTOCOL_ASSUAN
|
226
|
+
PROTOCOL_NAMES[PROTOCOL_ASSUAN] = :ASSUAN
|
227
|
+
end
|
228
|
+
|
229
|
+
if defined?(GPGME_PROTOCOL_SPAWN)
|
230
|
+
PROTOCOL_SPAWN = GPGME_PROTOCOL_SPAWN
|
231
|
+
PROTOCOL_NAMES[PROTOCOL_SPAWN] = :SPAWN
|
232
|
+
SPAWN_DETACHED = GPGME_SPAWN_DETACHED
|
233
|
+
SPAWN_ALLOW_SET_FG = GPGME_SPAWN_ALLOW_SET_FG
|
234
|
+
end
|
235
|
+
|
204
236
|
KEYLIST_MODE_NAMES = {
|
205
237
|
KEYLIST_MODE_LOCAL => :local,
|
206
238
|
KEYLIST_MODE_EXTERN => :extern,
|
@@ -216,12 +248,4 @@ module GPGME
|
|
216
248
|
VALIDITY_FULL => :full,
|
217
249
|
VALIDITY_ULTIMATE => :ultimate
|
218
250
|
}
|
219
|
-
|
220
|
-
PINENTRY_MODE_NAMES = {
|
221
|
-
PINENTRY_MODE_DEFAULT => :default,
|
222
|
-
PINENTRY_MODE_ASK => :ask,
|
223
|
-
PINENTRY_MODE_CANCEL => :cancel,
|
224
|
-
PINENTRY_MODE_ERROR => :error,
|
225
|
-
PINENTRY_MODE_LOOPBACK => :loopback
|
226
|
-
}
|
227
251
|
end
|
data/lib/gpgme/ctx.rb
CHANGED
@@ -463,6 +463,13 @@ module GPGME
|
|
463
463
|
cipher
|
464
464
|
end
|
465
465
|
|
466
|
+
def spawn(file, argv, datain, dataout, dataerr, flags = 0)
|
467
|
+
err = GPGME::gpgme_op_spawn(self, file, argv, datain, dataout, dataerr,
|
468
|
+
flags)
|
469
|
+
exc = GPGME::error_to_exception(err)
|
470
|
+
raise exc if exc
|
471
|
+
end
|
472
|
+
|
466
473
|
def inspect
|
467
474
|
"#<#{self.class} protocol=#{PROTOCOL_NAMES[protocol] || protocol}, \
|
468
475
|
armor=#{armor}, textmode=#{textmode}, \
|
data/lib/gpgme/engine.rb
CHANGED
@@ -71,6 +71,17 @@ module GPGME
|
|
71
71
|
current = info.first
|
72
72
|
set_info current.protocol, current.file_name, home_dir
|
73
73
|
end
|
74
|
+
|
75
|
+
##
|
76
|
+
# Return the default configuration.
|
77
|
+
#
|
78
|
+
# @example
|
79
|
+
# GPGME::Engine.dirinfo('homedir')
|
80
|
+
# # => '/home/user/.gnupg"
|
81
|
+
#
|
82
|
+
def dirinfo(what)
|
83
|
+
GPGME::gpgme_get_dirinfo(what)
|
84
|
+
end
|
74
85
|
end # class << self
|
75
86
|
end # class Engine
|
76
87
|
end # module GPGME
|
Binary file
|
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gpgme
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daiki Ueno
|
@@ -9,22 +9,28 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-06-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: mini_portile
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- -
|
18
|
+
- - '>='
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: 0.5.0
|
21
|
+
- - <=
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 0.6.0
|
21
24
|
type: :runtime
|
22
25
|
prerelease: false
|
23
26
|
version_requirements: !ruby/object:Gem::Requirement
|
24
27
|
requirements:
|
25
|
-
- -
|
28
|
+
- - '>='
|
26
29
|
- !ruby/object:Gem::Version
|
27
30
|
version: 0.5.0
|
31
|
+
- - <=
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.6.0
|
28
34
|
- !ruby/object:Gem::Dependency
|
29
35
|
name: mocha
|
30
36
|
requirement: !ruby/object:Gem::Requirement
|
@@ -142,8 +148,8 @@ files:
|
|
142
148
|
- examples/genkey.rb
|
143
149
|
- examples/keylist.rb
|
144
150
|
- examples/edit.rb
|
145
|
-
- ports/archives/libgpg-error-1.
|
146
|
-
- ports/archives/gpgme-1.
|
151
|
+
- ports/archives/libgpg-error-1.13.tar.bz2
|
152
|
+
- ports/archives/gpgme-1.5.0.tar.bz2
|
147
153
|
- ports/archives/libassuan-2.1.1.tar.bz2
|
148
154
|
homepage: http://github.com/ueno/ruby-gpgme
|
149
155
|
licenses:
|
Binary file
|
Binary file
|