selfsdk 0.0.190 → 0.0.193
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/chat/file_object.rb +18 -4
- data/lib/crypto.rb +1 -1
- data/lib/services/docs.rb +3 -2
- data/lib/services/facts.rb +4 -0
- 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: ce09c8f8b8cb4daafea4f4d94f2d1110fd376e8811a9e30f2703a8add593d5ab
|
4
|
+
data.tar.gz: 44d649bce5e7f0d0789954fdde6bbc47896b474a95af8eb536913f1bf5ef8712
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 26aad938c2d5c2e0cc2328eb9639f2e15b46805de03f97456cead55d005a21942f13078db7ce75ad6507d134777040e1698a17cab8c9caf075d52407f48222b3
|
7
|
+
data.tar.gz: 39ebfd842ec43b0b425b843dc9cfbf557dff14d5aa411ebd0fb8645ab7f09e81fcb5d71dd134154d9b0d80c6b891416309adf4d2ef285f8f9203cbbd80c834dc
|
data/lib/chat/file_object.rb
CHANGED
@@ -6,14 +6,14 @@ require 'open-uri'
|
|
6
6
|
module SelfSDK
|
7
7
|
module Chat
|
8
8
|
class FileObject
|
9
|
-
attr_accessor :link, :mime, :content, :key, :nonce, :ciphertext
|
9
|
+
attr_accessor :name, :link, :mime, :content, :key, :nonce, :ciphertext
|
10
10
|
|
11
11
|
def initialize(token, url)
|
12
12
|
@token = token
|
13
13
|
@url = url
|
14
14
|
end
|
15
15
|
|
16
|
-
def build_from_data(name, data, mime)
|
16
|
+
def build_from_data(name, data, mime, opts = {})
|
17
17
|
@key = SelfCrypto::Util.aead_xchacha20poly1305_ietf_keygen
|
18
18
|
@nonce = SelfCrypto::Util.aead_xchacha20poly1305_ietf_nonce
|
19
19
|
@content = data
|
@@ -25,7 +25,8 @@ module SelfSDK
|
|
25
25
|
|
26
26
|
# Upload
|
27
27
|
remote_object = upload(ciphertext)
|
28
|
-
|
28
|
+
public_url = opts[:public_url] || @url
|
29
|
+
@link = "#{public_url}/v1/objects/#{remote_object["id"]}"
|
29
30
|
@expires = remote_object["expires"]
|
30
31
|
|
31
32
|
self
|
@@ -34,7 +35,20 @@ module SelfSDK
|
|
34
35
|
# Incoming objects
|
35
36
|
def build_from_object(input)
|
36
37
|
# Download from CDN
|
37
|
-
ciphertext =
|
38
|
+
ciphertext = ""
|
39
|
+
5.times do
|
40
|
+
begin
|
41
|
+
ciphertext = URI.open(input[:link], "Authorization" => "Bearer #{@token}").read
|
42
|
+
break
|
43
|
+
rescue
|
44
|
+
sleep 1
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
if ciphertext.empty?
|
49
|
+
SelfSDK.logger.warn "unable to process incoming object"
|
50
|
+
return
|
51
|
+
end
|
38
52
|
|
39
53
|
@content = ciphertext
|
40
54
|
@key = nil
|
data/lib/crypto.rb
CHANGED
@@ -151,7 +151,7 @@ module SelfSDK
|
|
151
151
|
# if there is no session, create one
|
152
152
|
# if there is an existing session and we are sent a one time key message, check
|
153
153
|
# if it belongs to this current session and create a new inbound session if it doesn't
|
154
|
-
if session_with_bob.nil? || m.instance_of?(SelfCrypto::PreKeyMessage)
|
154
|
+
if session_with_bob.nil? || m.instance_of?(SelfCrypto::PreKeyMessage) && !session_with_bob.will_receive?(m)
|
155
155
|
# 7b-ii) use the initial message to create a session for bob or carol
|
156
156
|
session_with_bob = @account.inbound_session(m)
|
157
157
|
|
data/lib/services/docs.rb
CHANGED
@@ -28,7 +28,7 @@ module SelfSDK
|
|
28
28
|
# @param objects [Array] array of objects to be signed. provide an empty array if
|
29
29
|
# you just want the body to be signed.
|
30
30
|
# @yield [request] Invokes the given block when a response is received.
|
31
|
-
def request_signature(recipient, body, objects, &block)
|
31
|
+
def request_signature(recipient, body, objects, opts = {}, &block)
|
32
32
|
jti = SecureRandom.uuid
|
33
33
|
req = {
|
34
34
|
jti: jti,
|
@@ -43,7 +43,8 @@ module SelfSDK
|
|
43
43
|
req[:objects] << SelfSDK::Chat::FileObject.new(auth_token, @self_url).build_from_data(
|
44
44
|
o[:name],
|
45
45
|
o[:data],
|
46
|
-
o[:mime]
|
46
|
+
o[:mime],
|
47
|
+
opts
|
47
48
|
).to_payload
|
48
49
|
end
|
49
50
|
|
data/lib/services/facts.rb
CHANGED