bitwarden-sdk-secrets 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/linux-x64/libbitwarden_c.so +0 -0
- data/lib/macos-arm64/libbitwarden_c.dylib +0 -0
- data/lib/macos-x64/libbitwarden_c.dylib +0 -0
- data/lib/schemas.rb +90 -6
- data/lib/version.rb +1 -1
- data/lib/windows-x64/bitwarden_c.dll +0 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb13c1b0f2375b0588c8165f5f62ef535cf764db90a25b0dccf8fa7e54dca006
|
4
|
+
data.tar.gz: a59086cc47ad50cbc4051198f839eaec988014bbf23a2517c2d5e3bffe35a103
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4a38039296e5d75af2b1bd81662cc789d2bfb40d66c40a9e0b39d07571e3d60eb47a918910d5d126036818825cafd8c3edc7db6801fa168b77febdac2a952f61
|
7
|
+
data.tar.gz: d9dadcf1ab1e2315ab62ba4ec0332836890d7a5f401990e6db2cff888a7b7df182177737f13987a2e297bc7c3fdb10e585a54d5a465db37749d2fd7e7293a212
|
Binary file
|
Binary file
|
Binary file
|
data/lib/schemas.rb
CHANGED
@@ -15,6 +15,9 @@
|
|
15
15
|
# password_login_request = PasswordLoginRequest.from_json! "{…}"
|
16
16
|
# puts password_login_request.kdf.argon2_id&.iterations.even?
|
17
17
|
#
|
18
|
+
# string1 = String1.from_json! "…"
|
19
|
+
# puts string1
|
20
|
+
#
|
18
21
|
# two_factor_request = TwoFactorRequest.from_json! "{…}"
|
19
22
|
# puts two_factor_request.provider == TwoFactorProvider::Authenticator
|
20
23
|
#
|
@@ -213,6 +216,9 @@
|
|
213
216
|
# uri_match_type = URIMatchType.from_json! "…"
|
214
217
|
# puts uri_match_type == URIMatchType::Domain
|
215
218
|
#
|
219
|
+
# fido2_credential = Fido2Credential.from_json! "{…}"
|
220
|
+
# puts fido2_credential.counter
|
221
|
+
#
|
216
222
|
# identity = Identity.from_json! "{…}"
|
217
223
|
# puts identity.address1.nil?
|
218
224
|
#
|
@@ -587,6 +593,11 @@ class PBKDF2 < Dry::Struct
|
|
587
593
|
end
|
588
594
|
|
589
595
|
# Kdf from prelogin
|
596
|
+
#
|
597
|
+
# Key Derivation Function for Bitwarden Account
|
598
|
+
#
|
599
|
+
# In Bitwarden accounts can use multiple KDFs to derive their master key from their
|
600
|
+
# password. This Enum represents all the possible KDFs.
|
590
601
|
class Kdf < Dry::Struct
|
591
602
|
attribute :p_bkdf2, PBKDF2.optional
|
592
603
|
attribute :argon2_id, Argon2ID.optional
|
@@ -2636,6 +2647,67 @@ class LocalData < Dry::Struct
|
|
2636
2647
|
end
|
2637
2648
|
end
|
2638
2649
|
|
2650
|
+
class Fido2Credential < Dry::Struct
|
2651
|
+
attribute :counter, Types::String
|
2652
|
+
attribute :creation_date, Types::String
|
2653
|
+
attribute :credential_id, Types::String
|
2654
|
+
attribute :discoverable, Types::String
|
2655
|
+
attribute :key_algorithm, Types::String
|
2656
|
+
attribute :key_curve, Types::String
|
2657
|
+
attribute :key_type, Types::String
|
2658
|
+
attribute :key_value, Types::String
|
2659
|
+
attribute :rp_id, Types::String
|
2660
|
+
attribute :rp_name, Types::String.optional.optional
|
2661
|
+
attribute :user_display_name, Types::String.optional.optional
|
2662
|
+
attribute :user_handle, Types::String.optional.optional
|
2663
|
+
attribute :user_name, Types::String.optional.optional
|
2664
|
+
|
2665
|
+
def self.from_dynamic!(d)
|
2666
|
+
d = Types::Hash[d]
|
2667
|
+
new(
|
2668
|
+
counter: d.fetch("counter"),
|
2669
|
+
creation_date: d.fetch("creationDate"),
|
2670
|
+
credential_id: d.fetch("credentialId"),
|
2671
|
+
discoverable: d.fetch("discoverable"),
|
2672
|
+
key_algorithm: d.fetch("keyAlgorithm"),
|
2673
|
+
key_curve: d.fetch("keyCurve"),
|
2674
|
+
key_type: d.fetch("keyType"),
|
2675
|
+
key_value: d.fetch("keyValue"),
|
2676
|
+
rp_id: d.fetch("rpId"),
|
2677
|
+
rp_name: d["rpName"],
|
2678
|
+
user_display_name: d["userDisplayName"],
|
2679
|
+
user_handle: d["userHandle"],
|
2680
|
+
user_name: d["userName"],
|
2681
|
+
)
|
2682
|
+
end
|
2683
|
+
|
2684
|
+
def self.from_json!(json)
|
2685
|
+
from_dynamic!(JSON.parse(json))
|
2686
|
+
end
|
2687
|
+
|
2688
|
+
def to_dynamic
|
2689
|
+
{
|
2690
|
+
"counter" => counter,
|
2691
|
+
"creationDate" => creation_date,
|
2692
|
+
"credentialId" => credential_id,
|
2693
|
+
"discoverable" => discoverable,
|
2694
|
+
"keyAlgorithm" => key_algorithm,
|
2695
|
+
"keyCurve" => key_curve,
|
2696
|
+
"keyType" => key_type,
|
2697
|
+
"keyValue" => key_value,
|
2698
|
+
"rpId" => rp_id,
|
2699
|
+
"rpName" => rp_name,
|
2700
|
+
"userDisplayName" => user_display_name,
|
2701
|
+
"userHandle" => user_handle,
|
2702
|
+
"userName" => user_name,
|
2703
|
+
}
|
2704
|
+
end
|
2705
|
+
|
2706
|
+
def to_json(options = nil)
|
2707
|
+
JSON.generate(to_dynamic, options)
|
2708
|
+
end
|
2709
|
+
end
|
2710
|
+
|
2639
2711
|
module URIMatchType
|
2640
2712
|
Domain = "domain"
|
2641
2713
|
Exact = "exact"
|
@@ -2646,14 +2718,16 @@ module URIMatchType
|
|
2646
2718
|
end
|
2647
2719
|
|
2648
2720
|
class LoginURI < Dry::Struct
|
2649
|
-
attribute :match,
|
2650
|
-
attribute :uri,
|
2721
|
+
attribute :match, Types::URIMatchType.optional.optional
|
2722
|
+
attribute :uri, Types::String.optional.optional
|
2723
|
+
attribute :uri_checksum, Types::String.optional.optional
|
2651
2724
|
|
2652
2725
|
def self.from_dynamic!(d)
|
2653
2726
|
d = Types::Hash[d]
|
2654
2727
|
new(
|
2655
|
-
match:
|
2656
|
-
uri:
|
2728
|
+
match: d["match"],
|
2729
|
+
uri: d["uri"],
|
2730
|
+
uri_checksum: d["uriChecksum"],
|
2657
2731
|
)
|
2658
2732
|
end
|
2659
2733
|
|
@@ -2663,8 +2737,9 @@ class LoginURI < Dry::Struct
|
|
2663
2737
|
|
2664
2738
|
def to_dynamic
|
2665
2739
|
{
|
2666
|
-
"match"
|
2667
|
-
"uri"
|
2740
|
+
"match" => match,
|
2741
|
+
"uri" => uri,
|
2742
|
+
"uriChecksum" => uri_checksum,
|
2668
2743
|
}
|
2669
2744
|
end
|
2670
2745
|
|
@@ -2675,6 +2750,7 @@ end
|
|
2675
2750
|
|
2676
2751
|
class Login < Dry::Struct
|
2677
2752
|
attribute :autofill_on_page_load, Types::Bool.optional.optional
|
2753
|
+
attribute :fido2_credentials, Types.Array(Fido2Credential).optional.optional
|
2678
2754
|
attribute :password, Types::String.optional.optional
|
2679
2755
|
attribute :password_revision_date, Types::String.optional.optional
|
2680
2756
|
attribute :totp, Types::String.optional.optional
|
@@ -2685,6 +2761,7 @@ class Login < Dry::Struct
|
|
2685
2761
|
d = Types::Hash[d]
|
2686
2762
|
new(
|
2687
2763
|
autofill_on_page_load: d["autofillOnPageLoad"],
|
2764
|
+
fido2_credentials: d["fido2Credentials"]&.map { |x| Fido2Credential.from_dynamic!(x) },
|
2688
2765
|
password: d["password"],
|
2689
2766
|
password_revision_date: d["passwordRevisionDate"],
|
2690
2767
|
totp: d["totp"],
|
@@ -2700,6 +2777,7 @@ class Login < Dry::Struct
|
|
2700
2777
|
def to_dynamic
|
2701
2778
|
{
|
2702
2779
|
"autofillOnPageLoad" => autofill_on_page_load,
|
2780
|
+
"fido2Credentials" => fido2_credentials&.map { |x| x.to_dynamic },
|
2703
2781
|
"password" => password,
|
2704
2782
|
"passwordRevisionDate" => password_revision_date,
|
2705
2783
|
"totp" => totp,
|
@@ -3442,6 +3520,12 @@ class ResponseForUserAPIKeyResponse < Dry::Struct
|
|
3442
3520
|
end
|
3443
3521
|
end
|
3444
3522
|
|
3523
|
+
class String1
|
3524
|
+
def self.from_json!(json)
|
3525
|
+
JSON.parse(json, quirks_mode: true)
|
3526
|
+
end
|
3527
|
+
end
|
3528
|
+
|
3445
3529
|
class EncString
|
3446
3530
|
def self.from_json!(json)
|
3447
3531
|
JSON.parse(json, quirks_mode: true)
|
data/lib/version.rb
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bitwarden-sdk-secrets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bitwarden Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-04-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dry-struct
|