yoti 1.3.1 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +17 -0
- data/Gemfile +1 -0
- data/README.md +4 -1
- data/lib/generators/yoti/install/install_generator.rb +1 -1
- data/lib/yoti/activity_details.rb +46 -22
- data/lib/yoti/data_type/anchor.rb +5 -5
- data/lib/yoti/data_type/attribute.rb +16 -15
- data/lib/yoti/data_type/image.rb +19 -0
- data/lib/yoti/data_type/image_jpeg.rb +7 -0
- data/lib/yoti/data_type/image_png.rb +7 -0
- data/lib/yoti/data_type/multi_value.rb +48 -0
- data/lib/yoti/data_type/profile.rb +34 -30
- data/lib/yoti/data_type/signed_time_stamp.rb +7 -7
- data/lib/yoti/http/request.rb +2 -0
- data/lib/yoti/protobuf/attrpubapi/Attribute_pb.rb +40 -0
- data/lib/yoti/protobuf/attrpubapi/ContentType_pb.rb +25 -0
- data/lib/yoti/protobuf/attrpubapi/List_pb.rb +28 -0
- data/lib/yoti/protobuf/{v3/attrpubapi/signing_pb.rb → attrpubapi/Signing_pb.rb} +6 -6
- data/lib/yoti/protobuf/{v3/compubapi/encrypted_data_pb.rb → compubapi/EncryptedData_pb.rb} +4 -4
- data/lib/yoti/protobuf/{v3/compubapi/signed_time_stamp_pb.rb → compubapi/SignedTimestamp_pb.rb} +4 -4
- data/lib/yoti/protobuf/main.rb +41 -16
- data/lib/yoti/ssl.rb +6 -6
- data/lib/yoti/util/age_processor.rb +3 -3
- data/lib/yoti/util/anchor_processor.rb +67 -66
- data/lib/yoti/util/log.rb +23 -0
- data/lib/yoti/version.rb +1 -1
- data/lib/yoti.rb +5 -0
- data/rubocop.yml +17 -1
- data/yoti.gemspec +3 -3
- metadata +23 -22
- data/lib/yoti/protobuf/definitions/attrpubapi/attribute.proto +0 -52
- data/lib/yoti/protobuf/definitions/attrpubapi/list.proto +0 -27
- data/lib/yoti/protobuf/definitions/attrpubapi/signing.proto +0 -23
- data/lib/yoti/protobuf/definitions/compubapi/encrypted_data.proto +0 -15
- data/lib/yoti/protobuf/definitions/compubapi/signed_time_stamp.proto +0 -43
- data/lib/yoti/protobuf/v3/attrpubapi/attribute_pb.rb +0 -39
- data/lib/yoti/protobuf/v3/attrpubapi/list_pb.rb +0 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e50de3d515cbe593c45eee88ea0d684d0a1eafa59d0df31e4f52977f802a0773
|
4
|
+
data.tar.gz: 7e3aad79f573318e00328341abb2e162b8d438c232b488eb6bade1ac8b38151a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2c229fc49f7ca7bb4b3868395dd3e01742b08b6371eab0e9c8f085ac23e2c653260b6e06e5f858a59e596e8cec4b2d541f008ea391a0bec9e8388cd29f4bca8f
|
7
|
+
data.tar.gz: df7636a39d76928759337e949384c9e118a299da275f06aa47918819aa9012795bd6a494056b7bb49825dc920677c3e8db9385d339557436c4361f242cd87b0c
|
data/.travis.yml
ADDED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# Yoti Ruby SDK
|
2
2
|
|
3
|
+
[![Build Status](https://travis-ci.com/getyoti/yoti-ruby-sdk.svg?branch=master)](https://travis-ci.com/getyoti/yoti-ruby-sdk)
|
4
|
+
|
3
5
|
Welcome to the Yoti Ruby SDK. This repository contains the tools you need to quickly integrate your Ruby back-end with Yoti so that your users can share their identity details with your application in a secure and trusted way.
|
4
6
|
|
5
7
|
## Table of Contents
|
@@ -303,7 +305,8 @@ Visiting `https://localhost:4567/` should show a Yoti Connect button
|
|
303
305
|
## API Coverage
|
304
306
|
|
305
307
|
* Activity Details
|
306
|
-
* [X]
|
308
|
+
* [X] Remember Me ID `remember_me_id`
|
309
|
+
* [X] Parent Remember Me ID `parent_remember_me_id`
|
307
310
|
* [X] Base64 Selfie URI `base64_selfie_uri`
|
308
311
|
* [X] Age verified `age_verified`
|
309
312
|
* [X] Profile `profile`
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Yoti
|
2
2
|
module Generators
|
3
3
|
class InstallGenerator < Rails::Generators::Base
|
4
|
-
source_root File.expand_path('
|
4
|
+
source_root File.expand_path('./templates', __dir__)
|
5
5
|
|
6
6
|
desc 'This generator creates an Yoti initializer file at config/initializers'
|
7
7
|
|
@@ -6,9 +6,16 @@ module Yoti
|
|
6
6
|
# @return [String] the outcome of the profile request, eg: SUCCESS
|
7
7
|
attr_reader :outcome
|
8
8
|
|
9
|
+
# @deprecated replaced by :remember_me_id
|
9
10
|
# @return [String] the Yoti ID
|
10
11
|
attr_reader :user_id
|
11
12
|
|
13
|
+
# @return [String] the Remember Me ID
|
14
|
+
attr_reader :remember_me_id
|
15
|
+
|
16
|
+
# @return [String] the Parent Remember Me ID
|
17
|
+
attr_reader :parent_remember_me_id
|
18
|
+
|
12
19
|
# @return [Hash] the decoded profile attributes
|
13
20
|
attr_reader :user_profile
|
14
21
|
|
@@ -21,41 +28,58 @@ module Yoti
|
|
21
28
|
# @param receipt [Hash] the receipt from the API request
|
22
29
|
# @param decrypted_profile [Object] Protobuf AttributeList decrypted object containing the profile attributes
|
23
30
|
def initialize(receipt, decrypted_profile = nil)
|
24
|
-
@
|
31
|
+
@remember_me_id = receipt['remember_me_id']
|
32
|
+
@user_id = @remember_me_id
|
33
|
+
@parent_remember_me_id = receipt['parent_remember_me_id']
|
34
|
+
@outcome = receipt['sharing_outcome']
|
25
35
|
@user_profile = {}
|
26
36
|
@extended_profile = {}
|
37
|
+
process_decrypted_profile(decrypted_profile)
|
38
|
+
end
|
27
39
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
anchors_list = anchor_processor.process
|
40
|
+
# @return [Hash] a JSON of the address
|
41
|
+
def structured_postal_address
|
42
|
+
@user_profile['structured_postal_address']
|
43
|
+
end
|
33
44
|
|
34
|
-
|
35
|
-
|
36
|
-
|
45
|
+
# @return [Profile] of Yoti user
|
46
|
+
def profile
|
47
|
+
Yoti::Profile.new(@extended_profile)
|
48
|
+
end
|
37
49
|
|
50
|
+
protected
|
38
51
|
|
39
|
-
|
40
|
-
|
41
|
-
|
52
|
+
def process_decrypted_profile(decrypted_profile)
|
53
|
+
return nil unless decrypted_profile.is_a?(Object)
|
54
|
+
return nil unless decrypted_profile.respond_to?(:attributes)
|
42
55
|
|
43
|
-
|
56
|
+
decrypted_profile.attributes.each do |attribute|
|
57
|
+
begin
|
58
|
+
process_attribute(attribute)
|
59
|
+
process_age_verified(attribute)
|
60
|
+
rescue StandardError => e
|
61
|
+
Yoti::Log.logger.warn("#{e.message} (Attribute: #{attribute.name})")
|
44
62
|
end
|
45
63
|
end
|
46
|
-
|
47
|
-
@user_id = receipt['remember_me_id']
|
48
|
-
@outcome = receipt['sharing_outcome']
|
49
64
|
end
|
50
65
|
|
51
|
-
|
52
|
-
|
53
|
-
|
66
|
+
def process_attribute(attribute)
|
67
|
+
attr_value = Yoti::Protobuf.value_based_on_content_type(attribute.value, attribute.content_type)
|
68
|
+
attr_value = Yoti::Protobuf.value_based_on_attribute_name(attr_value, attribute.name)
|
69
|
+
|
70
|
+
# Handle selfies for backwards compatibility.
|
71
|
+
if attribute.name == Yoti::Attribute::SELFIE && attr_value.is_a?(Yoti::Image)
|
72
|
+
@base64_selfie_uri = attr_value.base64_content
|
73
|
+
attr_value = attr_value.content
|
74
|
+
end
|
75
|
+
|
76
|
+
anchors_list = Yoti::AnchorProcessor.new(attribute.anchors).process
|
77
|
+
@extended_profile[attribute.name] = Yoti::Attribute.new(attribute.name, attr_value, anchors_list['sources'], anchors_list['verifiers'])
|
78
|
+
@user_profile[attribute.name] = attr_value
|
54
79
|
end
|
55
80
|
|
56
|
-
|
57
|
-
|
58
|
-
return Yoti::Profile.new(@extended_profile)
|
81
|
+
def process_age_verified(attribute)
|
82
|
+
@age_verified = attribute.value == 'true' if Yoti::AgeProcessor.is_age_verification(attribute.name)
|
59
83
|
end
|
60
84
|
end
|
61
85
|
end
|
@@ -4,10 +4,10 @@ module Yoti
|
|
4
4
|
attr_reader :value, :sub_type, :signed_time_stamp, :origin_server_certs
|
5
5
|
|
6
6
|
def initialize(value, sub_type, signed_time_stamp, origin_server_certs)
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
@value = value
|
8
|
+
@sub_type = sub_type
|
9
|
+
@signed_time_stamp = signed_time_stamp
|
10
|
+
@origin_server_certs = origin_server_certs
|
11
11
|
end
|
12
12
|
end
|
13
|
-
end
|
13
|
+
end
|
@@ -1,25 +1,26 @@
|
|
1
1
|
module Yoti
|
2
2
|
# Encapsulates profile attribute
|
3
3
|
class Attribute
|
4
|
-
FAMILY_NAME = 'family_name'
|
5
|
-
GIVEN_NAMES = 'given_names'
|
6
|
-
FULL_NAME = 'full_name'
|
7
|
-
DATE_OF_BIRTH = 'date_of_birth'
|
8
|
-
GENDER = 'gender'
|
9
|
-
NATIONALITY = 'nationality'
|
10
|
-
PHONE_NUMBER = 'phone_number'
|
11
|
-
SELFIE = 'selfie'
|
12
|
-
EMAIL_ADDRESS = 'email_address'
|
13
|
-
POSTAL_ADDRESS = 'postal_address'
|
14
|
-
STRUCTURED_POSTAL_ADDRESS = 'structured_postal_address'
|
4
|
+
FAMILY_NAME = 'family_name'
|
5
|
+
GIVEN_NAMES = 'given_names'
|
6
|
+
FULL_NAME = 'full_name'
|
7
|
+
DATE_OF_BIRTH = 'date_of_birth'
|
8
|
+
GENDER = 'gender'
|
9
|
+
NATIONALITY = 'nationality'
|
10
|
+
PHONE_NUMBER = 'phone_number'
|
11
|
+
SELFIE = 'selfie'
|
12
|
+
EMAIL_ADDRESS = 'email_address'
|
13
|
+
POSTAL_ADDRESS = 'postal_address'
|
14
|
+
STRUCTURED_POSTAL_ADDRESS = 'structured_postal_address'
|
15
|
+
DOCUMENT_IMAGES = 'document_images'
|
15
16
|
|
16
17
|
attr_reader :name, :value, :sources, :verifiers
|
17
18
|
|
18
19
|
def initialize(name, value, sources, verifiers)
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
20
|
+
@name = name
|
21
|
+
@value = value
|
22
|
+
@sources = sources
|
23
|
+
@verifiers = verifiers
|
23
24
|
end
|
24
25
|
end
|
25
26
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'base64'
|
2
|
+
|
3
|
+
module Yoti
|
4
|
+
class Image
|
5
|
+
attr_reader :content
|
6
|
+
attr_reader :mime_type
|
7
|
+
|
8
|
+
def initialize(content, mime_type)
|
9
|
+
raise(TypeError, 'Image is an abstract class, so cannot be instantiated') if self.class == Yoti::Image
|
10
|
+
|
11
|
+
@content = content
|
12
|
+
@mime_type = mime_type
|
13
|
+
end
|
14
|
+
|
15
|
+
def base64_content
|
16
|
+
"data:#{mime_type};base64,#{Base64.strict_encode64(content)}"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module Yoti
|
2
|
+
class MultiValue
|
3
|
+
def initialize(items)
|
4
|
+
raise(TypeError, "Arrays must be passed to #{self.class.name}") unless items.is_a?(Array)
|
5
|
+
|
6
|
+
@original_items = items
|
7
|
+
@items = items.dup
|
8
|
+
@filters = []
|
9
|
+
end
|
10
|
+
|
11
|
+
def allow_type(type)
|
12
|
+
filter { |value| value.is_a?(type) }
|
13
|
+
self
|
14
|
+
end
|
15
|
+
|
16
|
+
def filter(&callback)
|
17
|
+
@filters.push(callback)
|
18
|
+
apply_filters
|
19
|
+
self
|
20
|
+
end
|
21
|
+
|
22
|
+
def items
|
23
|
+
apply_filters
|
24
|
+
@items.clone.freeze
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def apply_filters
|
30
|
+
@items = @original_items.dup
|
31
|
+
|
32
|
+
if @filters.count.positive?
|
33
|
+
@items.keep_if do |item|
|
34
|
+
match = @filters.select { |callback| callback.call(item) }
|
35
|
+
match.count.positive?
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
@items.each do |item|
|
40
|
+
next unless item.is_a?(MultiValue)
|
41
|
+
|
42
|
+
@filters.each do |callback|
|
43
|
+
item.filter { |value| callback.call(value) }
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -1,77 +1,81 @@
|
|
1
1
|
module Yoti
|
2
2
|
# Encapsulates Yoti user profile
|
3
3
|
class Profile
|
4
|
-
|
5
4
|
def initialize(profile_data)
|
6
|
-
|
7
|
-
|
8
|
-
end
|
9
|
-
@profile_data = profile_data
|
5
|
+
profile_data = {} unless profile_data.is_a? Object
|
6
|
+
@profile_data = profile_data
|
10
7
|
end
|
11
8
|
|
12
9
|
def selfie
|
13
|
-
|
10
|
+
get_attribute(Yoti::Attribute::SELFIE)
|
14
11
|
end
|
15
12
|
|
16
13
|
def family_name
|
17
|
-
|
14
|
+
get_attribute(Yoti::Attribute::FAMILY_NAME)
|
18
15
|
end
|
19
16
|
|
20
17
|
def given_names
|
21
|
-
|
18
|
+
get_attribute(Yoti::Attribute::GIVEN_NAMES)
|
22
19
|
end
|
23
20
|
|
24
21
|
def full_name
|
25
|
-
|
22
|
+
get_attribute(Yoti::Attribute::FULL_NAME)
|
26
23
|
end
|
27
24
|
|
28
25
|
def phone_number
|
29
|
-
|
26
|
+
get_attribute(Yoti::Attribute::PHONE_NUMBER)
|
30
27
|
end
|
31
28
|
|
32
29
|
def email_address
|
33
|
-
|
30
|
+
get_attribute(Yoti::Attribute::EMAIL_ADDRESS)
|
34
31
|
end
|
35
32
|
|
36
33
|
def date_of_birth
|
37
|
-
|
34
|
+
get_attribute(Yoti::Attribute::DATE_OF_BIRTH)
|
38
35
|
end
|
39
36
|
|
40
37
|
def gender
|
41
|
-
|
38
|
+
get_attribute(Yoti::Attribute::GENDER)
|
42
39
|
end
|
43
40
|
|
44
41
|
def nationality
|
45
|
-
|
42
|
+
get_attribute(Yoti::Attribute::NATIONALITY)
|
43
|
+
end
|
44
|
+
|
45
|
+
def document_images
|
46
|
+
get_attribute(Yoti::Attribute::DOCUMENT_IMAGES)
|
46
47
|
end
|
47
48
|
|
48
49
|
def postal_address
|
49
|
-
|
50
|
+
postal_address = get_attribute(Yoti::Attribute::POSTAL_ADDRESS)
|
51
|
+
return postal_address unless postal_address.nil?
|
50
52
|
|
51
|
-
|
52
|
-
return get_formatted_address
|
53
|
+
attribute_from_formatted_address
|
53
54
|
end
|
54
55
|
|
55
56
|
def structured_postal_address
|
56
|
-
|
57
|
+
get_attribute(Yoti::Attribute::STRUCTURED_POSTAL_ADDRESS)
|
57
58
|
end
|
58
59
|
|
59
60
|
# @return attribute value by name
|
60
61
|
def get_attribute(attr_name)
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
return nil
|
62
|
+
return nil unless @profile_data.key? attr_name
|
63
|
+
|
64
|
+
@profile_data[attr_name]
|
65
65
|
end
|
66
66
|
|
67
67
|
protected
|
68
68
|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
69
|
+
def attribute_from_formatted_address
|
70
|
+
return nil if structured_postal_address.nil?
|
71
|
+
return nil unless structured_postal_address.value.key?('formatted_address')
|
72
|
+
|
73
|
+
Yoti::Attribute.new(
|
74
|
+
Yoti::Attribute::POSTAL_ADDRESS,
|
75
|
+
structured_postal_address.value['formatted_address'],
|
76
|
+
structured_postal_address.sources,
|
77
|
+
structured_postal_address.verifiers
|
78
|
+
)
|
79
|
+
end
|
76
80
|
end
|
77
|
-
end
|
81
|
+
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
module Yoti
|
2
|
-
|
3
|
-
|
4
|
-
|
2
|
+
# Encapsulates anchor signed time stamp
|
3
|
+
class SignedTimeStamp
|
4
|
+
attr_reader :version, :time_stamp
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
end
|
6
|
+
def initialize(version, time_stamp)
|
7
|
+
@version = version
|
8
|
+
@time_stamp = time_stamp
|
10
9
|
end
|
10
|
+
end
|
11
11
|
end
|
data/lib/yoti/http/request.rb
CHANGED
@@ -26,6 +26,7 @@ module Yoti
|
|
26
26
|
end
|
27
27
|
|
28
28
|
raise RequestError, "Unsuccessful Yoti API call: #{res.message}" unless res.code == '200'
|
29
|
+
|
29
30
|
res.body
|
30
31
|
end
|
31
32
|
|
@@ -71,6 +72,7 @@ module Yoti
|
|
71
72
|
|
72
73
|
def token
|
73
74
|
return '' unless @encrypted_connect_token
|
75
|
+
|
74
76
|
Yoti::SSL.decrypt_token(@encrypted_connect_token)
|
75
77
|
end
|
76
78
|
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
+
# source: Attribute.proto
|
3
|
+
|
4
|
+
require 'google/protobuf'
|
5
|
+
|
6
|
+
require 'ContentType_pb'
|
7
|
+
Google::Protobuf::DescriptorPool.generated_pool.build do
|
8
|
+
add_message "attrpubapi_v1.Attribute" do
|
9
|
+
optional :name, :string, 1
|
10
|
+
optional :value, :bytes, 2
|
11
|
+
optional :content_type, :enum, 3, "attrpubapi_v1.ContentType"
|
12
|
+
repeated :anchors, :message, 4, "attrpubapi_v1.Anchor"
|
13
|
+
end
|
14
|
+
add_message "attrpubapi_v1.Anchor" do
|
15
|
+
optional :artifact_link, :bytes, 1
|
16
|
+
repeated :origin_server_certs, :bytes, 2
|
17
|
+
optional :artifact_signature, :bytes, 3
|
18
|
+
optional :sub_type, :string, 4
|
19
|
+
optional :signature, :bytes, 5
|
20
|
+
optional :signed_time_stamp, :bytes, 6
|
21
|
+
end
|
22
|
+
add_message "attrpubapi_v1.MultiValue" do
|
23
|
+
repeated :values, :message, 1, "attrpubapi_v1.MultiValue.Value"
|
24
|
+
end
|
25
|
+
add_message "attrpubapi_v1.MultiValue.Value" do
|
26
|
+
optional :content_type, :enum, 1, "attrpubapi_v1.ContentType"
|
27
|
+
optional :data, :bytes, 2
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
module Yoti
|
32
|
+
module Protobuf
|
33
|
+
module Attrpubapi
|
34
|
+
Attribute = Google::Protobuf::DescriptorPool.generated_pool.lookup("attrpubapi_v1.Attribute").msgclass
|
35
|
+
Anchor = Google::Protobuf::DescriptorPool.generated_pool.lookup("attrpubapi_v1.Anchor").msgclass
|
36
|
+
MultiValue = Google::Protobuf::DescriptorPool.generated_pool.lookup("attrpubapi_v1.MultiValue").msgclass
|
37
|
+
MultiValue::Value = Google::Protobuf::DescriptorPool.generated_pool.lookup("attrpubapi_v1.MultiValue.Value").msgclass
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
+
# source: ContentType.proto
|
3
|
+
|
4
|
+
require 'google/protobuf'
|
5
|
+
|
6
|
+
Google::Protobuf::DescriptorPool.generated_pool.build do
|
7
|
+
add_enum "attrpubapi_v1.ContentType" do
|
8
|
+
value :UNDEFINED, 0
|
9
|
+
value :STRING, 1
|
10
|
+
value :JPEG, 2
|
11
|
+
value :DATE, 3
|
12
|
+
value :PNG, 4
|
13
|
+
value :JSON, 5
|
14
|
+
value :MULTI_VALUE, 6
|
15
|
+
value :INT, 7
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
module Yoti
|
20
|
+
module Protobuf
|
21
|
+
module Attrpubapi
|
22
|
+
ContentType = Google::Protobuf::DescriptorPool.generated_pool.lookup("attrpubapi_v1.ContentType").enummodule
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
+
# source: List.proto
|
3
|
+
|
4
|
+
require 'google/protobuf'
|
5
|
+
|
6
|
+
require 'Attribute_pb'
|
7
|
+
Google::Protobuf::DescriptorPool.generated_pool.build do
|
8
|
+
add_message "attrpubapi_v1.AttributeAndId" do
|
9
|
+
optional :attribute, :message, 1, "attrpubapi_v1.Attribute"
|
10
|
+
optional :attribute_id, :bytes, 2
|
11
|
+
end
|
12
|
+
add_message "attrpubapi_v1.AttributeAndIdList" do
|
13
|
+
repeated :attribute_and_id_list, :message, 1, "attrpubapi_v1.AttributeAndId"
|
14
|
+
end
|
15
|
+
add_message "attrpubapi_v1.AttributeList" do
|
16
|
+
repeated :attributes, :message, 1, "attrpubapi_v1.Attribute"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
module Yoti
|
21
|
+
module Protobuf
|
22
|
+
module Attrpubapi
|
23
|
+
AttributeAndId = Google::Protobuf::DescriptorPool.generated_pool.lookup("attrpubapi_v1.AttributeAndId").msgclass
|
24
|
+
AttributeAndIdList = Google::Protobuf::DescriptorPool.generated_pool.lookup("attrpubapi_v1.AttributeAndIdList").msgclass
|
25
|
+
AttributeList = Google::Protobuf::DescriptorPool.generated_pool.lookup("attrpubapi_v1.AttributeList").msgclass
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -1,14 +1,14 @@
|
|
1
1
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
-
# source:
|
2
|
+
# source: Signing.proto
|
3
3
|
|
4
4
|
require 'google/protobuf'
|
5
5
|
|
6
|
-
|
6
|
+
require 'ContentType_pb'
|
7
7
|
Google::Protobuf::DescriptorPool.generated_pool.build do
|
8
|
-
add_message "
|
8
|
+
add_message "attrpubapi_v1.AttributeSigning" do
|
9
9
|
optional :name, :string, 1
|
10
10
|
optional :value, :bytes, 2
|
11
|
-
optional :content_type, :enum, 3, "
|
11
|
+
optional :content_type, :enum, 3, "attrpubapi_v1.ContentType"
|
12
12
|
optional :artifact_signature, :bytes, 4
|
13
13
|
optional :sub_type, :string, 5
|
14
14
|
optional :signed_time_stamp, :bytes, 6
|
@@ -17,8 +17,8 @@ end
|
|
17
17
|
|
18
18
|
module Yoti
|
19
19
|
module Protobuf
|
20
|
-
module
|
21
|
-
AttributeSigning = Google::Protobuf::DescriptorPool.generated_pool.lookup("
|
20
|
+
module Attrpubapi
|
21
|
+
AttributeSigning = Google::Protobuf::DescriptorPool.generated_pool.lookup("attrpubapi_v1.AttributeSigning").msgclass
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
@@ -1,10 +1,10 @@
|
|
1
1
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
-
# source:
|
2
|
+
# source: EncryptedData.proto
|
3
3
|
|
4
4
|
require 'google/protobuf'
|
5
5
|
|
6
6
|
Google::Protobuf::DescriptorPool.generated_pool.build do
|
7
|
-
add_message "
|
7
|
+
add_message "compubapi_v1.EncryptedData" do
|
8
8
|
optional :iv, :bytes, 1
|
9
9
|
optional :cipher_text, :bytes, 2
|
10
10
|
end
|
@@ -12,8 +12,8 @@ end
|
|
12
12
|
|
13
13
|
module Yoti
|
14
14
|
module Protobuf
|
15
|
-
module
|
16
|
-
EncryptedData = Google::Protobuf::DescriptorPool.generated_pool.lookup("
|
15
|
+
module Compubapi
|
16
|
+
EncryptedData = Google::Protobuf::DescriptorPool.generated_pool.lookup("compubapi_v1.EncryptedData").msgclass
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
data/lib/yoti/protobuf/{v3/compubapi/signed_time_stamp_pb.rb → compubapi/SignedTimestamp_pb.rb}
RENAMED
@@ -1,10 +1,10 @@
|
|
1
1
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
-
# source:
|
2
|
+
# source: SignedTimestamp.proto
|
3
3
|
|
4
4
|
require 'google/protobuf'
|
5
5
|
|
6
6
|
Google::Protobuf::DescriptorPool.generated_pool.build do
|
7
|
-
add_message "
|
7
|
+
add_message "compubapi_v1.SignedTimestamp" do
|
8
8
|
optional :version, :int32, 1
|
9
9
|
optional :timestamp, :uint64, 2
|
10
10
|
optional :message_digest, :bytes, 3
|
@@ -16,8 +16,8 @@ end
|
|
16
16
|
|
17
17
|
module Yoti
|
18
18
|
module Protobuf
|
19
|
-
module
|
20
|
-
SignedTimestamp = Google::Protobuf::DescriptorPool.generated_pool.lookup("
|
19
|
+
module Compubapi
|
20
|
+
SignedTimestamp = Google::Protobuf::DescriptorPool.generated_pool.lookup("compubapi_v1.SignedTimestamp").msgclass
|
21
21
|
end
|
22
22
|
end
|
23
23
|
end
|