ruby_gpg2 0.1.0.pre.18 → 0.1.0.pre.19
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/ruby_gpg2/colon_output.rb +65 -53
- data/lib/ruby_gpg2/key.rb +3 -0
- data/lib/ruby_gpg2/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: df0b9ee2a84c8dd0c62d4144fd19f121bfd5fe224ab868ecdfc69c1defbc220f
|
4
|
+
data.tar.gz: 1cdb7985e466380912a53f7714c16a3561d91d28d2dbd2ca1a1738654b79c08f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1bdb40b2d7e24886fc12d9327fc64cf54a1eb4960ebb2f6e4c80f5fc38aa03926bc9f52e3d64e11e4bc090c35a12cba369fefe85eb36f2b1b4118974202e035e
|
7
|
+
data.tar.gz: 30ff8200b4a908083eda056b9a803be9d1a8f6c179cb6f4b0693e96ce0faf7126f88a306900d4429de8867356719177d9e968056c8a9e138e5db72ccf333ef64
|
data/Gemfile.lock
CHANGED
@@ -15,62 +15,13 @@ module RubyGPG2
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def secret_keys
|
18
|
-
|
18
|
+
group_by_type(:secret_key)
|
19
|
+
.map { |record_group| extract_key(:secret, record_group) }
|
19
20
|
end
|
20
21
|
|
21
22
|
def public_keys
|
22
|
-
|
23
|
-
.
|
24
|
-
.collect { |record, index|
|
25
|
-
record.type == :public_key ? index : nil
|
26
|
-
}
|
27
|
-
.compact << @records.count
|
28
|
-
|
29
|
-
public_key_record_groups = []
|
30
|
-
public_key_indices.each_cons(2) do |index_pair|
|
31
|
-
public_key_record_groups <<
|
32
|
-
@records[index_pair[0]...index_pair[1]]
|
33
|
-
end
|
34
|
-
|
35
|
-
public_key_record_groups.map do |record_group|
|
36
|
-
records_in_group = record_group.count
|
37
|
-
public_key_record = record_group[0]
|
38
|
-
|
39
|
-
fingerprint_record =
|
40
|
-
(records_in_group > 1 && record_group[1].fingerprint_record?) ?
|
41
|
-
record_group[1] :
|
42
|
-
nil
|
43
|
-
fingerprint = fingerprint_record&.fingerprint
|
44
|
-
|
45
|
-
user_id_records = record_group
|
46
|
-
.drop_while { |r| !r.user_id_record? }
|
47
|
-
.take_while { |r| r.user_id_record? }
|
48
|
-
user_ids = user_id_records.map do |record|
|
49
|
-
UserID.new(
|
50
|
-
name: record.user_name,
|
51
|
-
comment: record.user_comment,
|
52
|
-
email: record.user_email,
|
53
|
-
validity: record.validity,
|
54
|
-
creation_date: record.creation_date,
|
55
|
-
expiration_date: record.expiration_date,
|
56
|
-
hash: record.user_id_hash,
|
57
|
-
origin: record.origin)
|
58
|
-
end
|
59
|
-
|
60
|
-
Key.new(
|
61
|
-
type: :public,
|
62
|
-
validity: public_key_record.validity,
|
63
|
-
length: public_key_record.key_length,
|
64
|
-
algorithm: public_key_record.key_algorithm,
|
65
|
-
id: public_key_record.key_id,
|
66
|
-
creation_date: public_key_record.creation_date,
|
67
|
-
owner_trust: public_key_record.owner_trust,
|
68
|
-
capabilities: public_key_record.key_capabilities,
|
69
|
-
compliance_modes: public_key_record.compliance_modes,
|
70
|
-
origin: public_key_record.origin,
|
71
|
-
fingerprint: fingerprint,
|
72
|
-
user_ids: user_ids)
|
73
|
-
end
|
23
|
+
group_by_type(:public_key)
|
24
|
+
.map { |record_group| extract_key(:public, record_group) }
|
74
25
|
end
|
75
26
|
|
76
27
|
def ==(other)
|
@@ -82,5 +33,66 @@ module RubyGPG2
|
|
82
33
|
def state
|
83
34
|
[@records]
|
84
35
|
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def indices_by_type(type)
|
40
|
+
@records
|
41
|
+
.each_with_index
|
42
|
+
.collect { |record, index| record.type == type ? index : nil }
|
43
|
+
.compact
|
44
|
+
end
|
45
|
+
|
46
|
+
def group_by_type(type)
|
47
|
+
indices = indices_by_type(type)
|
48
|
+
indices << @records.count
|
49
|
+
|
50
|
+
groups = []
|
51
|
+
indices.each_cons(2) do |index_pair|
|
52
|
+
groups << @records[index_pair[0]...index_pair[1]]
|
53
|
+
end
|
54
|
+
groups
|
55
|
+
end
|
56
|
+
|
57
|
+
def extract_key(type, record_group)
|
58
|
+
records_in_group = record_group.count
|
59
|
+
key_record = record_group[0]
|
60
|
+
|
61
|
+
fingerprint_record =
|
62
|
+
(records_in_group > 1 && record_group[1].fingerprint_record?) ?
|
63
|
+
record_group[1] :
|
64
|
+
nil
|
65
|
+
fingerprint = fingerprint_record&.fingerprint
|
66
|
+
|
67
|
+
user_id_records = record_group
|
68
|
+
.drop_while { |r| !r.user_id_record? }
|
69
|
+
.take_while { |r| r.user_id_record? }
|
70
|
+
user_ids = user_id_records.map do |record|
|
71
|
+
UserID.new(
|
72
|
+
name: record.user_name,
|
73
|
+
comment: record.user_comment,
|
74
|
+
email: record.user_email,
|
75
|
+
validity: record.validity,
|
76
|
+
creation_date: record.creation_date,
|
77
|
+
expiration_date: record.expiration_date,
|
78
|
+
hash: record.user_id_hash,
|
79
|
+
origin: record.origin)
|
80
|
+
end
|
81
|
+
|
82
|
+
Key.new(
|
83
|
+
type: type,
|
84
|
+
validity: key_record.validity,
|
85
|
+
length: key_record.key_length,
|
86
|
+
algorithm: key_record.key_algorithm,
|
87
|
+
id: key_record.key_id,
|
88
|
+
creation_date: key_record.creation_date,
|
89
|
+
owner_trust: key_record.owner_trust,
|
90
|
+
capabilities: key_record.key_capabilities,
|
91
|
+
serial_number: key_record.serial_number,
|
92
|
+
compliance_modes: key_record.compliance_modes,
|
93
|
+
origin: key_record.origin,
|
94
|
+
fingerprint: fingerprint,
|
95
|
+
user_ids: user_ids)
|
96
|
+
end
|
85
97
|
end
|
86
98
|
end
|
data/lib/ruby_gpg2/key.rb
CHANGED
@@ -9,6 +9,7 @@ module RubyGPG2
|
|
9
9
|
:creation_date,
|
10
10
|
:owner_trust,
|
11
11
|
:capabilities,
|
12
|
+
:serial_number,
|
12
13
|
:compliance_modes,
|
13
14
|
:origin,
|
14
15
|
:fingerprint,
|
@@ -23,6 +24,7 @@ module RubyGPG2
|
|
23
24
|
@creation_date = opts[:creation_date]
|
24
25
|
@owner_trust = opts[:owner_trust]
|
25
26
|
@capabilities = opts[:capabilities]
|
27
|
+
@serial_number = opts[:serial_number]
|
26
28
|
@compliance_modes = opts[:compliance_modes]
|
27
29
|
@origin = opts[:origin]
|
28
30
|
@fingerprint = opts[:fingerprint]
|
@@ -49,6 +51,7 @@ module RubyGPG2
|
|
49
51
|
@creation_date,
|
50
52
|
@owner_trust,
|
51
53
|
@capabilities,
|
54
|
+
@serial_number,
|
52
55
|
@compliance_modes,
|
53
56
|
@origin,
|
54
57
|
@fingerprint
|
data/lib/ruby_gpg2/version.rb
CHANGED