Establish pass compatibility fixture harness (#1)
This commit is contained in:
52
crates/storage/tests/fixtures/compatibility/README.md
vendored
Normal file
52
crates/storage/tests/fixtures/compatibility/README.md
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
# Compatibility fixtures
|
||||
|
||||
These fixtures pin password-store 1.7.4 at commit
|
||||
`1078f2514d579178d5df7042c6a790e9c9b731ad` and pass-otp 1.2.0 at commit
|
||||
`1e9d10ca75ae1a8672a7f192809713463657778e`. The behavioral catalog was
|
||||
written from the projects' published command documentation and pinned source;
|
||||
no upstream source or test code is copied here.
|
||||
|
||||
The v1.2.0 pass-otp tag reports `1.1.1` from its `version` command. The
|
||||
fixture records that observable upstream behavior explicitly rather than
|
||||
silently correcting it.
|
||||
|
||||
All identities, passphrases, plaintexts, OTP secrets, Git identities, and
|
||||
remote names are synthetic and public. They must never be reused for real
|
||||
secrets. The generator reuses the checked-in identities and produces:
|
||||
|
||||
- ASCII-armored and binary public keys;
|
||||
- passphrase-protected ASCII-armored and binary secret keys;
|
||||
- binary OpenPGP messages in an ordinary pass directory tree;
|
||||
- root, nested, signed, and multi-recipient `.gpg-id` policies;
|
||||
- TOTP and HOTP entries;
|
||||
- valid loose-object Git repository templates, including an automatic-commit
|
||||
history and nested-repository boundaries.
|
||||
|
||||
Rust tests parse keys, verify signatures, decrypt every entry, compare exact
|
||||
plaintext bytes, validate ciphertext digests, validate Git objects and refs,
|
||||
and materialize isolated stores and repositories. They never invoke `pass`,
|
||||
`gpg`, `git`, a shell, or an OTP/QR helper.
|
||||
|
||||
## Refreshing fixtures
|
||||
|
||||
From the repository root:
|
||||
|
||||
```sh
|
||||
cargo run -p ironstorage --example refresh_compatibility_fixtures
|
||||
cargo test -p ironstorage --test compatibility_fixtures
|
||||
```
|
||||
|
||||
Normal refreshes are byte-for-byte reproducible at the locked dependency
|
||||
versions because checked-in identities are reused. Deleting the key fixtures
|
||||
explicitly rotates the synthetic identities; OpenPGP self-signature timestamps
|
||||
then make that rotation intentionally non-reproducible. Review all binary
|
||||
changes and the generated fingerprints, digests, and Git object IDs before
|
||||
committing them.
|
||||
|
||||
An optional developer interoperability audit may import the generated keys
|
||||
into a disposable GnuPG home, decrypt the `.gpg` entries, and point an
|
||||
upstream `pass` 1.7.4 checkout at a materialized store. That audit is never a
|
||||
test prerequisite and must use a temporary keyring and the synthetic fixture
|
||||
passphrases. Refreshing observable behavior against upstream `pass` or
|
||||
`pass-otp` is similarly development-only; application/runtime code may not
|
||||
execute either tool.
|
||||
1205
crates/storage/tests/fixtures/compatibility/behavior.toml
vendored
Normal file
1205
crates/storage/tests/fixtures/compatibility/behavior.toml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3
crates/storage/tests/fixtures/compatibility/expected/basic/email/personal.txt
vendored
Normal file
3
crates/storage/tests/fixtures/compatibility/expected/basic/email/personal.txt
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
correct horse fixture
|
||||
login: alice@example.test
|
||||
url: https://example.test
|
||||
1
crates/storage/tests/fixtures/compatibility/expected/basic/otp/hotp.txt
vendored
Normal file
1
crates/storage/tests/fixtures/compatibility/expected/basic/otp/hotp.txt
vendored
Normal file
@@ -0,0 +1 @@
|
||||
otpauth://hotp/IronStorage:counter?secret=JBSWY3DPEHPK3PXP&issuer=IronStorage&counter=0&digits=8
|
||||
2
crates/storage/tests/fixtures/compatibility/expected/basic/otp/totp.txt
vendored
Normal file
2
crates/storage/tests/fixtures/compatibility/expected/basic/otp/totp.txt
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
fixture-password
|
||||
otpauth://totp/IronStorage:alice%40example.test?secret=JBSWY3DPEHPK3PXP&issuer=IronStorage&algorithm=SHA1&digits=6&period=30
|
||||
2
crates/storage/tests/fixtures/compatibility/expected/basic/shared/multiple.txt
vendored
Normal file
2
crates/storage/tests/fixtures/compatibility/expected/basic/shared/multiple.txt
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
shared-fixture-password
|
||||
recipients: alice,bob
|
||||
2
crates/storage/tests/fixtures/compatibility/expected/basic/team/service.txt
vendored
Normal file
2
crates/storage/tests/fixtures/compatibility/expected/basic/team/service.txt
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
team-fixture-password
|
||||
owner: bob
|
||||
3
crates/storage/tests/fixtures/compatibility/expected/basic/unicode/咖啡.txt
vendored
Normal file
3
crates/storage/tests/fixtures/compatibility/expected/basic/unicode/咖啡.txt
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
pässwörd-猫
|
||||
login: 用户@example.test
|
||||
notes: café
|
||||
1
crates/storage/tests/fixtures/compatibility/expected/nested/outer/inner/nested-entry.txt
vendored
Normal file
1
crates/storage/tests/fixtures/compatibility/expected/nested/outer/inner/nested-entry.txt
vendored
Normal file
@@ -0,0 +1 @@
|
||||
inner repository entry
|
||||
1
crates/storage/tests/fixtures/compatibility/expected/nested/outer/root-entry.txt
vendored
Normal file
1
crates/storage/tests/fixtures/compatibility/expected/nested/outer/root-entry.txt
vendored
Normal file
@@ -0,0 +1 @@
|
||||
outer repository entry
|
||||
105
crates/storage/tests/fixtures/compatibility/generated.toml
vendored
Normal file
105
crates/storage/tests/fixtures/compatibility/generated.toml
vendored
Normal file
@@ -0,0 +1,105 @@
|
||||
format = 1
|
||||
generated_by = "cargo run -p ironstorage --example refresh_compatibility_fixtures"
|
||||
fixture_seed = "49 repeated 32 times (hex); checked-in keys are reused on refresh"
|
||||
|
||||
[[keys]]
|
||||
name = "alice"
|
||||
user_id = "Alice Fixture <alice@ironstorage.invalid>"
|
||||
primary_fingerprint = "7E5C5241B25F6FFAAD717EBFA132DCB2DC23AE30"
|
||||
encryption_subkey_fingerprint = "10208D0B84AD13D2157795D5EB55885EC93C0A26"
|
||||
passphrase = "fixture-alice-passphrase"
|
||||
public_armor = "keys/alice-public.asc"
|
||||
public_binary = "keys/alice-public.pgp"
|
||||
secret_armor = "keys/alice-secret.asc"
|
||||
secret_binary = "keys/alice-secret.pgp"
|
||||
|
||||
[[keys]]
|
||||
name = "bob"
|
||||
user_id = "Bob Fixture <bob@ironstorage.invalid>"
|
||||
primary_fingerprint = "B37027B56FC406BD3F6A622B2AC03492B992D06F"
|
||||
encryption_subkey_fingerprint = "46E34F32333752A01E4E019B4AC0B1A0B4D6278D"
|
||||
passphrase = "fixture-bob-passphrase"
|
||||
public_armor = "keys/bob-public.asc"
|
||||
public_binary = "keys/bob-public.pgp"
|
||||
secret_armor = "keys/bob-secret.asc"
|
||||
secret_binary = "keys/bob-secret.pgp"
|
||||
|
||||
[[entries]]
|
||||
store = "basic"
|
||||
path = "email/personal.gpg"
|
||||
plaintext = "email/personal.txt"
|
||||
recipients = ["7E5C5241B25F6FFAAD717EBFA132DCB2DC23AE30"]
|
||||
ciphertext_sha256 = "8259de0c1ae6b5d4fc3ebd410452f96a266b0d55d111cfaf9c609baf3deda1b2"
|
||||
|
||||
[[entries]]
|
||||
store = "basic"
|
||||
path = "unicode/咖啡.gpg"
|
||||
plaintext = "unicode/咖啡.txt"
|
||||
recipients = ["7E5C5241B25F6FFAAD717EBFA132DCB2DC23AE30"]
|
||||
ciphertext_sha256 = "c5c829b46e517109bcfea7731c846ca6d09eff8076fe4444aaa1c2512fc06d44"
|
||||
|
||||
[[entries]]
|
||||
store = "basic"
|
||||
path = "otp/totp.gpg"
|
||||
plaintext = "otp/totp.txt"
|
||||
recipients = ["7E5C5241B25F6FFAAD717EBFA132DCB2DC23AE30"]
|
||||
ciphertext_sha256 = "260a0d7371964ca9d115e2d818cf1a8a63e2a4ff9a172ca421c569aa649cf014"
|
||||
|
||||
[[entries]]
|
||||
store = "basic"
|
||||
path = "otp/hotp.gpg"
|
||||
plaintext = "otp/hotp.txt"
|
||||
recipients = ["7E5C5241B25F6FFAAD717EBFA132DCB2DC23AE30"]
|
||||
ciphertext_sha256 = "337bb6568bc3805b8c269463654b081da88d3755da62603b263b6865babf9bd2"
|
||||
|
||||
[[entries]]
|
||||
store = "basic"
|
||||
path = "team/service.gpg"
|
||||
plaintext = "team/service.txt"
|
||||
recipients = ["B37027B56FC406BD3F6A622B2AC03492B992D06F"]
|
||||
ciphertext_sha256 = "b325904fbdbe335bc9cd2319ace3e598da194e6450bf3f47371507b1f47306ae"
|
||||
|
||||
[[entries]]
|
||||
store = "basic"
|
||||
path = "shared/multiple.gpg"
|
||||
plaintext = "shared/multiple.txt"
|
||||
recipients = [
|
||||
"7E5C5241B25F6FFAAD717EBFA132DCB2DC23AE30",
|
||||
"B37027B56FC406BD3F6A622B2AC03492B992D06F",
|
||||
]
|
||||
ciphertext_sha256 = "7a8ac913dfb930d6ed8d98d40b12be9f522685c5be45d6b2b30b1bc407b5996b"
|
||||
|
||||
[[entries]]
|
||||
store = "nested"
|
||||
path = "outer/root-entry.gpg"
|
||||
plaintext = "outer/root-entry.txt"
|
||||
recipients = ["7E5C5241B25F6FFAAD717EBFA132DCB2DC23AE30"]
|
||||
ciphertext_sha256 = "58c1470b623ec7076ddf52e8c3a8372e508ab4b84b7ad146e7878d85e4b872de"
|
||||
|
||||
[[entries]]
|
||||
store = "nested"
|
||||
path = "outer/inner/nested-entry.gpg"
|
||||
plaintext = "outer/inner/nested-entry.txt"
|
||||
recipients = ["B37027B56FC406BD3F6A622B2AC03492B992D06F"]
|
||||
ciphertext_sha256 = "b8757d983ad7d78205f3f7b74cfb22b949aebae25bc70febcffe0c5d6ec4882b"
|
||||
|
||||
[[repositories]]
|
||||
name = "basic"
|
||||
template = "repositories/basic.git"
|
||||
head = "c1bec8815d40fab6e23162443ef55ce1c46bddf6"
|
||||
commits = [
|
||||
"a7d88415df6027082096f6fd035387ac76726920",
|
||||
"c1bec8815d40fab6e23162443ef55ce1c46bddf6",
|
||||
]
|
||||
|
||||
[[repositories]]
|
||||
name = "outer"
|
||||
template = "repositories/outer.git"
|
||||
head = "2c32c59867d2e4b4ab07ca8e9225e8eaa887a58e"
|
||||
commits = ["2c32c59867d2e4b4ab07ca8e9225e8eaa887a58e"]
|
||||
|
||||
[[repositories]]
|
||||
name = "inner"
|
||||
template = "repositories/inner.git"
|
||||
head = "308371ba7fd91255536f4e6afee2e23a02af6915"
|
||||
commits = ["308371ba7fd91255536f4e6afee2e23a02af6915"]
|
||||
13
crates/storage/tests/fixtures/compatibility/keys/alice-public.asc
vendored
Normal file
13
crates/storage/tests/fixtures/compatibility/keys/alice-public.asc
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
xjMEZZIAgBYJKwYBBAHaRw8BAQdAZihauC+eAYkipuDUFUMqq+UVCvWVZCK8gvTi
|
||||
rkx1grXNKUFsaWNlIEZpeHR1cmUgPGFsaWNlQGlyb25zdG9yYWdlLmludmFsaWQ+
|
||||
wokEExYIADEFAmp457IWIQR+XFJBsl9v+q1xfr+hMtyy3COuMAIbAwIeAQMLCQcC
|
||||
FQgBFgEnAhkBAAoJEKEy3LLcI64wEAABAKqDzgiRwCBFC+kcbKGNOWO9O/nKVDHR
|
||||
Q2d4r8HOUXItAQCTGZHFaBkaZNyDjAOLTBBWMBxa0i5WatkAx5ZnKJT8Cs44BGWS
|
||||
AIASCisGAQQBl1UBBQEBB0BIPO/SwIrdEJLCGmXEG1/szwa9u7WK0rPQArtvrYMx
|
||||
PAMBCAfCeAQYFggAIAUCanjnswIbDBYhBH5cUkGyX2/6rXF+v6Ey3LLcI64wAAoJ
|
||||
EKEy3LLcI64wyKIA/i7fuf/N31swIwzJXLBkzU4BvWJfv6NuHuvQej4qmnhrAQDi
|
||||
ZJ+POdCbAxeTE7wNT5llULI8oowyUXfcF7C7UzDCAw==
|
||||
=Mbap
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
BIN
crates/storage/tests/fixtures/compatibility/keys/alice-public.pgp
vendored
Normal file
BIN
crates/storage/tests/fixtures/compatibility/keys/alice-public.pgp
vendored
Normal file
Binary file not shown.
17
crates/storage/tests/fixtures/compatibility/keys/alice-secret.asc
vendored
Normal file
17
crates/storage/tests/fixtures/compatibility/keys/alice-secret.asc
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
-----BEGIN PGP PRIVATE KEY BLOCK-----
|
||||
|
||||
xYYEZZIAgBYJKwYBBAHaRw8BAQdAZihauC+eAYkipuDUFUMqq+UVCvWVZCK8gvTi
|
||||
rkx1grX+CQMIY/R1q1/mEXzgJkJdUlNlns+1/EtfSNxLhlzT8XaaLL/pf7ZPI7e0
|
||||
mvzQuBEvkEGTVAxt2u80sGMY7mbZvcG6L++dUpP1FqvPdM8fjCv8PM0pQWxpY2Ug
|
||||
Rml4dHVyZSA8YWxpY2VAaXJvbnN0b3JhZ2UuaW52YWxpZD7CiQQTFggAMQUCanjn
|
||||
shYhBH5cUkGyX2/6rXF+v6Ey3LLcI64wAhsDAh4BAwsJBwIVCAEWAScCGQEACgkQ
|
||||
oTLcstwjrjAQAAEAqoPOCJHAIEUL6RxsoY05Y707+cpUMdFDZ3ivwc5Rci0BAJMZ
|
||||
kcVoGRpk3IOMA4tMEFYwHFrSLlZq2QDHlmcolPwKx4sEZZIAgBIKKwYBBAGXVQEF
|
||||
AQEHQEg879LAit0QksIaZcQbX+zPBr27tYrSs9ACu2+tgzE8AwEIB/4JAwhRDjBN
|
||||
dWgYi+AGAFqqDR6n0O+kc1WyeUYI+G8+R9EDz6Ar0xGGaZZ8GUU17BWGDY/UbxUU
|
||||
z5LHAQ2KB05GYf/9VjHTaKZCSiKFJlCElEASwngEGBYIACAFAmp457MCGwwWIQR+
|
||||
XFJBsl9v+q1xfr+hMtyy3COuMAAKCRChMtyy3COuMMiiAP4u37n/zd9bMCMMyVyw
|
||||
ZM1OAb1iX7+jbh7r0Ho+Kpp4awEA4mSfjznQmwMXkxO8DU+ZZVCyPKKMMlF33Bew
|
||||
u1MwwgM=
|
||||
=ij6E
|
||||
-----END PGP PRIVATE KEY BLOCK-----
|
||||
BIN
crates/storage/tests/fixtures/compatibility/keys/alice-secret.pgp
vendored
Normal file
BIN
crates/storage/tests/fixtures/compatibility/keys/alice-secret.pgp
vendored
Normal file
Binary file not shown.
13
crates/storage/tests/fixtures/compatibility/keys/bob-public.asc
vendored
Normal file
13
crates/storage/tests/fixtures/compatibility/keys/bob-public.asc
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
xjMEZZIAgBYJKwYBBAHaRw8BAQdANd08TxPj0ZuIl1cMvEf0FMCxubDwlzXDLX6w
|
||||
9M+959XNJUJvYiBGaXh0dXJlIDxib2JAaXJvbnN0b3JhZ2UuaW52YWxpZD7CiQQT
|
||||
FggAMQUCanjntBYhBLNwJ7VvxAa9P2piKyrANJK5ktBvAhsDAh4BAwsJBwIVCAEW
|
||||
AScCGQEACgkQKsA0krmS0G9BCwD/daZy2BdmNQX8TldPBtoLTrugeaFmtrcVDQZ3
|
||||
AzWEMcMA/16q87Zkaw2ozanLSBcRiq4iZnBTAmU/7bUSlA2myZoHzjgEZZIAgBIK
|
||||
KwYBBAGXVQEFAQEHQByJpci1aMxEcUVlw9mByZUPyaQ7kI1emdJOuN1hcLEKAwEI
|
||||
B8J4BBgWCAAgBQJqeOe1AhsMFiEEs3AntW/EBr0/amIrKsA0krmS0G8ACgkQKsA0
|
||||
krmS0G+2lwEAvD9R7o52H37GsfeMS15UJBeIHBaYHjpsIyfoOWq0vsEA/j0oL4IG
|
||||
SIakL3z1C1KHU+4iz3rzz2vNnhgGQd7+DS8H
|
||||
=vS0q
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
BIN
crates/storage/tests/fixtures/compatibility/keys/bob-public.pgp
vendored
Normal file
BIN
crates/storage/tests/fixtures/compatibility/keys/bob-public.pgp
vendored
Normal file
Binary file not shown.
17
crates/storage/tests/fixtures/compatibility/keys/bob-secret.asc
vendored
Normal file
17
crates/storage/tests/fixtures/compatibility/keys/bob-secret.asc
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
-----BEGIN PGP PRIVATE KEY BLOCK-----
|
||||
|
||||
xYYEZZIAgBYJKwYBBAHaRw8BAQdANd08TxPj0ZuIl1cMvEf0FMCxubDwlzXDLX6w
|
||||
9M+959X+CQMIx1A5+eCcr6bgYLtP6nkTdu/qlT/dwB7B38PIlZekNRoN2yd48DcO
|
||||
WmOqWrkE+Fxovj8zITOJUGP16kHJjW0727wsY1LI4BrX2Gsa3m0jV80lQm9iIEZp
|
||||
eHR1cmUgPGJvYkBpcm9uc3RvcmFnZS5pbnZhbGlkPsKJBBMWCAAxBQJqeOe0FiEE
|
||||
s3AntW/EBr0/amIrKsA0krmS0G8CGwMCHgEDCwkHAhUIARYBJwIZAQAKCRAqwDSS
|
||||
uZLQb0ELAP91pnLYF2Y1BfxOV08G2gtOu6B5oWa2txUNBncDNYQxwwD/XqrztmRr
|
||||
DajNqctIFxGKriJmcFMCZT/ttRKUDabJmgfHiwRlkgCAEgorBgEEAZdVAQUBAQdA
|
||||
HImlyLVozERxRWXD2YHJlQ/JpDuQjV6Z0k643WFwsQoDAQgH/gkDCJdPSdzYfIpD
|
||||
4M3cgwcGp2Ok/jR9F18ObkKhc/M6UfllIkZKLNl9zjUnDagCIzy+ZiLWTxAAKl02
|
||||
bGkW56gOcrp+PIARjn85GEBRXXYogE7CeAQYFggAIAUCanjntQIbDBYhBLNwJ7Vv
|
||||
xAa9P2piKyrANJK5ktBvAAoJECrANJK5ktBvtpcBALw/Ue6Odh9+xrH3jEteVCQX
|
||||
iBwWmB46bCMn6DlqtL7BAP49KC+CBkiGpC989QtSh1PuIs96889rzZ4YBkHe/g0v
|
||||
Bw==
|
||||
=w2Yf
|
||||
-----END PGP PRIVATE KEY BLOCK-----
|
||||
BIN
crates/storage/tests/fixtures/compatibility/keys/bob-secret.pgp
vendored
Normal file
BIN
crates/storage/tests/fixtures/compatibility/keys/bob-secret.pgp
vendored
Normal file
Binary file not shown.
51
crates/storage/tests/fixtures/compatibility/layouts.toml
vendored
Normal file
51
crates/storage/tests/fixtures/compatibility/layouts.toml
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
format = 1
|
||||
|
||||
[[layout]]
|
||||
id = "basic"
|
||||
store = "stores/basic"
|
||||
purpose = "ordinary, Unicode, OTP, nested recipient, signature, and multi-recipient entries"
|
||||
|
||||
[[layout]]
|
||||
id = "nested"
|
||||
store = "stores/nested/outer"
|
||||
purpose = "an outer store and an inner recipient/Git boundary"
|
||||
|
||||
[[synthetic_node]]
|
||||
layout = "hostile"
|
||||
kind = "symlink"
|
||||
path = "escape.gpg"
|
||||
target = "../outside.gpg"
|
||||
expected = "reject-symlink-escape"
|
||||
|
||||
[[synthetic_node]]
|
||||
layout = "hostile"
|
||||
kind = "symlink"
|
||||
path = "directory-link"
|
||||
target = "../outside"
|
||||
expected = "reject-symlink-escape"
|
||||
|
||||
[[synthetic_node]]
|
||||
layout = "hostile"
|
||||
kind = "fifo"
|
||||
path = "unsupported.gpg"
|
||||
target = ""
|
||||
expected = "reject-unsupported-file-type"
|
||||
|
||||
[[synthetic_node]]
|
||||
layout = "collision"
|
||||
kind = "entry-directory-collision"
|
||||
path = "ambiguous"
|
||||
target = "ambiguous.gpg"
|
||||
expected = "require-trailing-slash-disambiguation"
|
||||
|
||||
[[interruption]]
|
||||
id = "before-temp-fsync"
|
||||
expected = "original-entry-intact"
|
||||
|
||||
[[interruption]]
|
||||
id = "after-temp-fsync-before-rename"
|
||||
expected = "original-entry-intact"
|
||||
|
||||
[[interruption]]
|
||||
id = "after-rename-before-directory-fsync"
|
||||
expected = "new-entry-complete"
|
||||
1
crates/storage/tests/fixtures/compatibility/repositories/basic.git/HEAD
vendored
Normal file
1
crates/storage/tests/fixtures/compatibility/repositories/basic.git/HEAD
vendored
Normal file
@@ -0,0 +1 @@
|
||||
ref: refs/heads/main
|
||||
6
crates/storage/tests/fixtures/compatibility/repositories/basic.git/config
vendored
Normal file
6
crates/storage/tests/fixtures/compatibility/repositories/basic.git/config
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
[core]
|
||||
repositoryformatversion = 0
|
||||
filemode = true
|
||||
bare = true
|
||||
[pass]
|
||||
signcommits = false
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
1
crates/storage/tests/fixtures/compatibility/repositories/basic.git/refs/heads/main
vendored
Normal file
1
crates/storage/tests/fixtures/compatibility/repositories/basic.git/refs/heads/main
vendored
Normal file
@@ -0,0 +1 @@
|
||||
c1bec8815d40fab6e23162443ef55ce1c46bddf6
|
||||
1
crates/storage/tests/fixtures/compatibility/repositories/inner.git/HEAD
vendored
Normal file
1
crates/storage/tests/fixtures/compatibility/repositories/inner.git/HEAD
vendored
Normal file
@@ -0,0 +1 @@
|
||||
ref: refs/heads/main
|
||||
6
crates/storage/tests/fixtures/compatibility/repositories/inner.git/config
vendored
Normal file
6
crates/storage/tests/fixtures/compatibility/repositories/inner.git/config
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
[core]
|
||||
repositoryformatversion = 0
|
||||
filemode = true
|
||||
bare = true
|
||||
[pass]
|
||||
signcommits = false
|
||||
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
xœŽK
|
||||
Â0@]÷³Ê˜¤IÝ®=A>S
|
||||
ØD¦Sõø¢½‚»/ÖqÌʘ•0D¯·Q‡Áû¤u¯¬²
|
||||
U?8§BLØYÝãûÆÏr«g®å"•ý•à”ß23ÁnXà<58>¹–i‘m.OÏi‡Sˆ°FDlâoAè/±æ˜Ä™™Š@¬E¨Èu€\
|
||||
Binary file not shown.
Binary file not shown.
1
crates/storage/tests/fixtures/compatibility/repositories/inner.git/refs/heads/main
vendored
Normal file
1
crates/storage/tests/fixtures/compatibility/repositories/inner.git/refs/heads/main
vendored
Normal file
@@ -0,0 +1 @@
|
||||
308371ba7fd91255536f4e6afee2e23a02af6915
|
||||
1
crates/storage/tests/fixtures/compatibility/repositories/outer.git/HEAD
vendored
Normal file
1
crates/storage/tests/fixtures/compatibility/repositories/outer.git/HEAD
vendored
Normal file
@@ -0,0 +1 @@
|
||||
ref: refs/heads/main
|
||||
6
crates/storage/tests/fixtures/compatibility/repositories/outer.git/config
vendored
Normal file
6
crates/storage/tests/fixtures/compatibility/repositories/outer.git/config
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
[core]
|
||||
repositoryformatversion = 0
|
||||
filemode = true
|
||||
bare = true
|
||||
[pass]
|
||||
signcommits = false
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
1
crates/storage/tests/fixtures/compatibility/repositories/outer.git/refs/heads/main
vendored
Normal file
1
crates/storage/tests/fixtures/compatibility/repositories/outer.git/refs/heads/main
vendored
Normal file
@@ -0,0 +1 @@
|
||||
2c32c59867d2e4b4ab07ca8e9225e8eaa887a58e
|
||||
1
crates/storage/tests/fixtures/compatibility/stores/basic/.gpg-id
vendored
Normal file
1
crates/storage/tests/fixtures/compatibility/stores/basic/.gpg-id
vendored
Normal file
@@ -0,0 +1 @@
|
||||
7E5C5241B25F6FFAAD717EBFA132DCB2DC23AE30
|
||||
BIN
crates/storage/tests/fixtures/compatibility/stores/basic/.gpg-id.sig
vendored
Normal file
BIN
crates/storage/tests/fixtures/compatibility/stores/basic/.gpg-id.sig
vendored
Normal file
Binary file not shown.
BIN
crates/storage/tests/fixtures/compatibility/stores/basic/email/personal.gpg
vendored
Normal file
BIN
crates/storage/tests/fixtures/compatibility/stores/basic/email/personal.gpg
vendored
Normal file
Binary file not shown.
2
crates/storage/tests/fixtures/compatibility/stores/basic/otp/hotp.gpg
vendored
Normal file
2
crates/storage/tests/fixtures/compatibility/stores/basic/otp/hotp.gpg
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
Á^ëUˆ^É<
|
||||
&@ÞLT5µ–« w캩ÆÉaО<13>—Õ×¶Ú8%£–ï@0~±`ÇAEŠÄauÚ#‰¡‚kröøáÆ@ÓFãMiÜJ1Z›†ðy ûFÛ…”}ý˜>Ò’G™M+n²¼/xu†=³uÙ;C¸ùV½n<C2BD>AÛ¬v!7ÿaÞ]XV@x]þˆ ðÁîÓÃæ“Ã{<GB<47>úï’JÓç‘e5u¨€]ƒþf¶†eÝ è<0E>S¼D³žÐMÜ¥@ÂÍ_ÓO‘°`švÂþ¾·×…'þ.¿e|n„Ò!Ñ
|
||||
BIN
crates/storage/tests/fixtures/compatibility/stores/basic/otp/totp.gpg
vendored
Normal file
BIN
crates/storage/tests/fixtures/compatibility/stores/basic/otp/totp.gpg
vendored
Normal file
Binary file not shown.
2
crates/storage/tests/fixtures/compatibility/stores/basic/shared/.gpg-id
vendored
Normal file
2
crates/storage/tests/fixtures/compatibility/stores/basic/shared/.gpg-id
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
7E5C5241B25F6FFAAD717EBFA132DCB2DC23AE30
|
||||
B37027B56FC406BD3F6A622B2AC03492B992D06F
|
||||
3
crates/storage/tests/fixtures/compatibility/stores/basic/shared/multiple.gpg
vendored
Normal file
3
crates/storage/tests/fixtures/compatibility/stores/basic/shared/multiple.gpg
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
Á^ëUˆ^É<
|
||||
&@ÆÀ€–D¾bó
|
||||
ƒ–²ÁÎUšIJà ‚x¸Ä[¦üO0l‹]¦žÍé2+û'µþ¡jfEÜd+ܲɜE“¦b™x4”Öð™Fõ¾Ðj‡'ÕM÷»šÁ^JÀ± ´Ö'<27>@«>Ó˜ÖÁ§·‚&Ί¡àc™Íë€Èâ¶d\ô_x0#À—Û´Œ6‹AûŠ˜þ¥X ·uë'c¿°(„<>¬hÈŽ¢<C5BD>´x<C2B4>`ËŃë—hrØÞmÒ_Á𨗲w:â^–>ûzûêó#7:ã§$U€¦ñ<C2A6><C3B1>êãJ×óÅEN6V•®Ol$<24>óÕ½ÅZ•5)µ–®þÁÅ^/™›.Š£/Vn_[&ú%…Ý‚—ùýEÍ{Ž&œ
|
||||
1
crates/storage/tests/fixtures/compatibility/stores/basic/team/.gpg-id
vendored
Normal file
1
crates/storage/tests/fixtures/compatibility/stores/basic/team/.gpg-id
vendored
Normal file
@@ -0,0 +1 @@
|
||||
B37027B56FC406BD3F6A622B2AC03492B992D06F
|
||||
BIN
crates/storage/tests/fixtures/compatibility/stores/basic/team/.gpg-id.sig
vendored
Normal file
BIN
crates/storage/tests/fixtures/compatibility/stores/basic/team/.gpg-id.sig
vendored
Normal file
Binary file not shown.
1
crates/storage/tests/fixtures/compatibility/stores/basic/team/service.gpg
vendored
Normal file
1
crates/storage/tests/fixtures/compatibility/stores/basic/team/service.gpg
vendored
Normal file
@@ -0,0 +1 @@
|
||||
Á^JÀ± ´Ö'<27>@˜RžEmF¶z}àŠÜwMþŽÖy³?T9ôL0÷Y³é¦ºõ"‹Gw©<77>/§á„ÒÓJfƒ¸Žy2àªVëtÏ«¹ô±XÐÆÉ;¾h¥ÒR!ÜŽbd‘'E^[Ì“_|“ã¿Åû¿cwk˜ 0j¡ÑÚ=xÔü8(ˆjqVý¿¢˜7®ž¸qW<71>K‘Ð.+'Î×ß9)<29>W
|
||||
2
crates/storage/tests/fixtures/compatibility/stores/basic/unicode/咖啡.gpg
vendored
Normal file
2
crates/storage/tests/fixtures/compatibility/stores/basic/unicode/咖啡.gpg
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
а^КU┬^и<
|
||||
&@╧c┐╩▓f≤╟}▐Т╔ц│[v┐ЦТк`%@╙Вvw0ЕвБ╜К├┬©©SЭgя┬┤жbжЯ■l║≥Х Р┐HЪhФGG╡╛.д┼≈╔Kырh∙╦й└ус·┬╝┌─PРЬ~x2Б°IБ4<÷╙%1Bпmиk?ЦYГ╒o▄з╩\л2млХTbеВ%┴╫F,■▀gВ∙И┬┐уЗ°Уhm┤C?{g╖ъ▐i╣╠z_gкщ▓Щр╚Д
|
||||
1
crates/storage/tests/fixtures/compatibility/stores/nested/outer/.gpg-id
vendored
Normal file
1
crates/storage/tests/fixtures/compatibility/stores/nested/outer/.gpg-id
vendored
Normal file
@@ -0,0 +1 @@
|
||||
7E5C5241B25F6FFAAD717EBFA132DCB2DC23AE30
|
||||
1
crates/storage/tests/fixtures/compatibility/stores/nested/outer/inner/.gpg-id
vendored
Normal file
1
crates/storage/tests/fixtures/compatibility/stores/nested/outer/inner/.gpg-id
vendored
Normal file
@@ -0,0 +1 @@
|
||||
B37027B56FC406BD3F6A622B2AC03492B992D06F
|
||||
2
crates/storage/tests/fixtures/compatibility/stores/nested/outer/inner/nested-entry.gpg
vendored
Normal file
2
crates/storage/tests/fixtures/compatibility/stores/nested/outer/inner/nested-entry.gpg
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
Á^JÀ± ´Ö'<27>@YC
|
||||
ÔEÕõÚËêPô˜l¼w`|÷ǵkPsSk©µ•H0Ð_ç´²ka¢g#Ôú‚õ¿½<O¼(jYÚЧ§ÄèäÑì-°Ä‘j'³ñLÒHå:o£|·Ö!=:c:ƒé²ãEÑw÷R¬»—cÕ›bÍYôvÐ.U¨Bä}ZÈB;ž.£éœ\V}ów¼‚<C2BC>êyï`
|
||||
BIN
crates/storage/tests/fixtures/compatibility/stores/nested/outer/root-entry.gpg
vendored
Normal file
BIN
crates/storage/tests/fixtures/compatibility/stores/nested/outer/root-entry.gpg
vendored
Normal file
Binary file not shown.
21
crates/storage/tests/fixtures/compatibility/upstream.toml
vendored
Normal file
21
crates/storage/tests/fixtures/compatibility/upstream.toml
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
format = 1
|
||||
|
||||
[[project]]
|
||||
name = "password-store"
|
||||
version = "1.7.4"
|
||||
reported_version = "1.7.4"
|
||||
tag = "1.7.4"
|
||||
commit = "1078f2514d579178d5df7042c6a790e9c9b731ad"
|
||||
source = "https://git.zx2c4.com/password-store/"
|
||||
behavior_source = "src/password-store.sh"
|
||||
license = "GPL-2.0-or-later"
|
||||
|
||||
[[project]]
|
||||
name = "pass-otp"
|
||||
version = "1.2.0"
|
||||
reported_version = "1.1.1"
|
||||
tag = "v1.2.0"
|
||||
commit = "1e9d10ca75ae1a8672a7f192809713463657778e"
|
||||
source = "https://github.com/tadfisher/pass-otp"
|
||||
behavior_source = "otp.bash"
|
||||
license = "GPL-3.0-only"
|
||||
Reference in New Issue
Block a user