carlos / contra Public

CI passed 28s

Branch
web/import-1pux
Commit
51585d2e Paul Campbell
Runner
ci-aws~paul@keymail.dev/ip-172-31-28-66
Reported by
ci-aws~paul@keymail.dev/ip-172-31-28-66
Queued
Started
Waited for a runner
2m 5s
Last change
Attempt
1 of 2

Steps run in order, one after another.

  1. vet passed 1s
    go vet ./...
    
  2. fmt passed

    No output.

  3. test passed 19s
    go test ./...
    ?   	github.com/carlosframework/contra/cmd/contra	[no test files]
    ?   	github.com/carlosframework/contra/internal/contra	[no test files]
    ?   	github.com/carlosframework/contra/internal/contra/auth	[no test files]
    ok  	github.com/carlosframework/contra/internal/contra/crypto	0.436s
    ?   	github.com/carlosframework/contra/internal/contra/icons	[no test files]
    ?   	github.com/carlosframework/contra/internal/contra/mail	[no test files]
    ?   	github.com/carlosframework/contra/internal/contra/model	[no test files]
    ?   	github.com/carlosframework/contra/internal/contra/store	[no test files]
    ?   	github.com/carlosframework/contra/internal/contra/vault	[no test files]
    ok  	github.com/carlosframework/contra/internal/contratest	17.804s
    
  4. js-test passed 7s
    node --test test/crypto.test.mjs test/ecies.test.mjs test/items.test.mjs \
    	test/sharing.test.mjs test/onepux.test.mjs
    TAP version 13
    # Subtest: HKDF: every contra/v1 label
    ok 1 - HKDF: every contra/v1 label
      ---
      duration_ms: 10.961528
      type: 'test'
      ...
    # Subtest: KCV
    ok 2 - KCV
      ---
      duration_ms: 2.474255
      type: 'test'
      ...
    # Subtest: P-256 from a seed, including the rejection branch
    ok 3 - P-256 from a seed, including the rejection branch
      ---
      duration_ms: 12.870159
      type: 'test'
      ...
    # Subtest: signed challenge round-trips against the derived public key
    ok 4 - signed challenge round-trips against the derived public key
      ---
      duration_ms: 5.343874
      type: 'test'
      ...
    # Subtest: Crockford: alphabet, encoding, normalisation, strict decoding
    ok 5 - Crockford: alphabet, encoding, normalisation, strict decoding
      ---
      duration_ms: 1.076938
      type: 'test'
      ...
    # Subtest: the printed code, and the O/I/L confusions it has to survive
    ok 6 - the printed code, and the O/I/L confusions it has to survive
      ---
      duration_ms: 2.331836
      type: 'test'
      ...
    # Subtest: repair recovers one substituted character
    ok 7 - repair recovers one substituted character
      ---
      duration_ms: 52.760518
      type: 'test'
      ...
    # Subtest: AEAD: the AAD binding and every wrap
    ok 8 - AEAD: the AAD binding and every wrap
      ---
      duration_ms: 2.918166
      type: 'test'
      ...
    # Subtest: AEAD: the item, scoped to its vault
    ok 9 - AEAD: the item, scoped to its vault
      ---
      duration_ms: 1.258266
      type: 'test'
      ...
    # Subtest: a transplanted ciphertext does not open
    ok 10 - a transplanted ciphertext does not open
      ---
      duration_ms: 2.070161
      type: 'test'
      ...
    # Subtest: padding quantises into 256-byte buckets and round-trips
    ok 11 - padding quantises into 256-byte buckets and round-trips
      ---
      duration_ms: 1.015666
      type: 'test'
      ...
    # Subtest: the KDF parameter floor refuses what a malicious server would offer
    ok 12 - the KDF parameter floor refuses what a malicious server would offer
      ---
      duration_ms: 0.698437
      type: 'test'
      ...
    # Subtest: Argon2id matches the published PHC reference vector
    ok 13 - Argon2id matches the published PHC reference vector
      ---
      duration_ms: 1811.440218
      type: 'test'
      ...
    # Subtest: Argon2id at the corners the 64 MiB case does not reach
    ok 14 - Argon2id at the corners the 64 MiB case does not reach
      ---
      duration_ms: 214.08045
      type: 'test'
      ...
    # Subtest: Argon2id matches the golden vector at the parameters PROTOCOL.md pins
    ok 15 - Argon2id matches the golden vector at the parameters PROTOCOL.md pins
      ---
      duration_ms: 2576.403206
      type: 'test'
      ...
    # Subtest: the account chain, end to end
    ok 16 - the account chain, end to end
      ---
      duration_ms: 2582.979399
      type: 'test'
      ...
    # Subtest: handoff: both keypairs derive from their published seeds
    ok 17 - handoff: both keypairs derive from their published seeds
      ---
      duration_ms: 17.262006
      type: 'test'
      ...
    # Subtest: handoff: ECDH agrees from both sides
    ok 18 - handoff: ECDH agrees from both sides
      ---
      duration_ms: 8.43727
      type: 'test'
      ...
    # Subtest: handoff: the derived key, the AAD and the sealed bytes
    ok 19 - handoff: the derived key, the AAD and the sealed bytes
      ---
      duration_ms: 2.777632
      type: 'test'
      ...
    # Subtest: handoff: an envelope opens for its device and for nobody else
    ok 20 - handoff: an envelope opens for its device and for nobody else
      ---
      duration_ms: 17.645061
      type: 'test'
      ...
    # Subtest: handoff: the Go and JS halves seal for each other
    ok 21 - handoff: the Go and JS halves seal for each other
      ---
      duration_ms: 8.80151
      type: 'test'
      ...
    # Subtest: handoff: a truncated envelope is refused before any key work
    ok 22 - handoff: a truncated envelope is refused before any key work
      ---
      duration_ms: 0.608987
      type: 'test'
      ...
    # Subtest: an item round-trips through create, list and update
    ok 23 - an item round-trips through create, list and update
      ---
      duration_ms: 11.053198
      type: 'test'
      ...
    # Subtest: nothing readable reaches the network
    ok 24 - nothing readable reaches the network
      ---
      duration_ms: 2.721822
      type: 'test'
      ...
    # Subtest: item ciphertexts are quantised into 256-byte buckets
    ok 25 - item ciphertexts are quantised into 256-byte buckets
      ---
      duration_ms: 1.743756
      type: 'test'
      ...
    # Subtest: an item does not open in another slot
    ok 26 - an item does not open in another slot
      ---
      duration_ms: 3.040665
      type: 'test'
      ...
    # Subtest: every field is present whether or not it was filled in
    ok 27 - every field is present whether or not it was filled in
      ---
      duration_ms: 1.090774
      type: 'test'
      ...
    # Subtest: the Account Key cache is storage handed in, not reached for
    ok 28 - the Account Key cache is storage handed in, not reached for
      ---
      duration_ms: 0.414593
      type: 'test'
      ...
    # Subtest: the ZIP reader finds every entry and both compression methods
    ok 29 - the ZIP reader finds every entry and both compression methods
      ---
      duration_ms: 3.965313
      type: 'test'
      ...
    # Subtest: a file that is not a ZIP is refused with an explanation
    ok 30 - a file that is not a ZIP is refused with an explanation
      ---
      duration_ms: 0.547957
      type: 'test'
      ...
    # Subtest: a ZIP without export.data is refused rather than half-imported
    ok 31 - a ZIP without export.data is refused rather than half-imported
      ---
      duration_ms: 0.455377
      type: 'test'
      ...
    # Subtest: a truncated deflate entry is caught by the declared size
    ok 32 - a truncated deflate entry is caught by the declared size
      ---
      duration_ms: 33.992304
      type: 'test'
      ...
    # Subtest: every item comes across, including the shape that breaks other importers
    ok 33 - every item comes across, including the shape that breaks other importers
      ---
      duration_ms: 4.514446
      type: 'test'
      ...
    # Subtest: section fields survive, labelled, with concealment preserved
    ok 34 - section fields survive, labelled, with concealment preserved
      ---
      duration_ms: 2.86626
      type: 'test'
      ...
    # Subtest: an unknown category still imports, and is named in the report
    ok 35 - an unknown category still imports, and is named in the report
      ---
      duration_ms: 3.771207
      type: 'test'
      ...
    # Subtest: what does not come across is counted, not hidden
    ok 36 - what does not come across is counted, not hidden
      ---
      duration_ms: 2.932291
      type: 'test'
      ...
    # Subtest: no value in the export goes missing without being reported
    ok 37 - no value in the export goes missing without being reported
      ---
      duration_ms: 1.0859
      type: 'test'
      ...
    # Subtest: an owner seals a keyset that a different account can open
    ok 38 - an owner seals a keyset that a different account can open
      ---
      duration_ms: 18.688113
      type: 'test'
      ...
    # Subtest: nobody else can open a member's wrap
    ok 39 - nobody else can open a member's wrap
      ---
      duration_ms: 17.035086
      type: 'test'
      ...
    # Subtest: a member wrap carries the vault key and not the drop box
    ok 40 - a member wrap carries the vault key and not the drop box
      ---
      duration_ms: 6.3206
      type: 'test'
      ...
    # Subtest: a member cannot share or rotate
    ok 41 - a member cannot share or rotate
      ---
      duration_ms: 1.828598
      type: 'test'
      ...
    # Subtest: rotation re-seals every item under the new key
    ok 42 - rotation re-seals every item under the new key
      ---
      duration_ms: 9.886662
      type: 'test'
      ...
    1..42
    # tests 42
    # suites 0
    # pass 42
    # fail 0
    # cancelled 0
    # skipped 0
    # todo 0
    # duration_ms 7354.390576
    
  5. migration-check passed 1s
    go run github.com/carlosframework/rastrillo/cmd/rastrillo migration check
    rastrillo migration check: models and migrations agree
    
Whole run log
=== vet ===
go vet ./...
=== fmt ===
=== test ===
go test ./...
?   	github.com/carlosframework/contra/cmd/contra	[no test files]
?   	github.com/carlosframework/contra/internal/contra	[no test files]
?   	github.com/carlosframework/contra/internal/contra/auth	[no test files]
ok  	github.com/carlosframework/contra/internal/contra/crypto	0.436s
?   	github.com/carlosframework/contra/internal/contra/icons	[no test files]
?   	github.com/carlosframework/contra/internal/contra/mail	[no test files]
?   	github.com/carlosframework/contra/internal/contra/model	[no test files]
?   	github.com/carlosframework/contra/internal/contra/store	[no test files]
?   	github.com/carlosframework/contra/internal/contra/vault	[no test files]
ok  	github.com/carlosframework/contra/internal/contratest	17.804s
=== js-test ===
node --test test/crypto.test.mjs test/ecies.test.mjs test/items.test.mjs \
	test/sharing.test.mjs test/onepux.test.mjs
TAP version 13
# Subtest: HKDF: every contra/v1 label
ok 1 - HKDF: every contra/v1 label
  ---
  duration_ms: 10.961528
  type: 'test'
  ...
# Subtest: KCV
ok 2 - KCV
  ---
  duration_ms: 2.474255
  type: 'test'
  ...
# Subtest: P-256 from a seed, including the rejection branch
ok 3 - P-256 from a seed, including the rejection branch
  ---
  duration_ms: 12.870159
  type: 'test'
  ...
# Subtest: signed challenge round-trips against the derived public key
ok 4 - signed challenge round-trips against the derived public key
  ---
  duration_ms: 5.343874
  type: 'test'
  ...
# Subtest: Crockford: alphabet, encoding, normalisation, strict decoding
ok 5 - Crockford: alphabet, encoding, normalisation, strict decoding
  ---
  duration_ms: 1.076938
  type: 'test'
  ...
# Subtest: the printed code, and the O/I/L confusions it has to survive
ok 6 - the printed code, and the O/I/L confusions it has to survive
  ---
  duration_ms: 2.331836
  type: 'test'
  ...
# Subtest: repair recovers one substituted character
ok 7 - repair recovers one substituted character
  ---
  duration_ms: 52.760518
  type: 'test'
  ...
# Subtest: AEAD: the AAD binding and every wrap
ok 8 - AEAD: the AAD binding and every wrap
  ---
  duration_ms: 2.918166
  type: 'test'
  ...
# Subtest: AEAD: the item, scoped to its vault
ok 9 - AEAD: the item, scoped to its vault
  ---
  duration_ms: 1.258266
  type: 'test'
  ...
# Subtest: a transplanted ciphertext does not open
ok 10 - a transplanted ciphertext does not open
  ---
  duration_ms: 2.070161
  type: 'test'
  ...
# Subtest: padding quantises into 256-byte buckets and round-trips
ok 11 - padding quantises into 256-byte buckets and round-trips
  ---
  duration_ms: 1.015666
  type: 'test'
  ...
# Subtest: the KDF parameter floor refuses what a malicious server would offer
ok 12 - the KDF parameter floor refuses what a malicious server would offer
  ---
  duration_ms: 0.698437
  type: 'test'
  ...
# Subtest: Argon2id matches the published PHC reference vector
ok 13 - Argon2id matches the published PHC reference vector
  ---
  duration_ms: 1811.440218
  type: 'test'
  ...
# Subtest: Argon2id at the corners the 64 MiB case does not reach
ok 14 - Argon2id at the corners the 64 MiB case does not reach
  ---
  duration_ms: 214.08045
  type: 'test'
  ...
# Subtest: Argon2id matches the golden vector at the parameters PROTOCOL.md pins
ok 15 - Argon2id matches the golden vector at the parameters PROTOCOL.md pins
  ---
  duration_ms: 2576.403206
  type: 'test'
  ...
# Subtest: the account chain, end to end
ok 16 - the account chain, end to end
  ---
  duration_ms: 2582.979399
  type: 'test'
  ...
# Subtest: handoff: both keypairs derive from their published seeds
ok 17 - handoff: both keypairs derive from their published seeds
  ---
  duration_ms: 17.262006
  type: 'test'
  ...
# Subtest: handoff: ECDH agrees from both sides
ok 18 - handoff: ECDH agrees from both sides
  ---
  duration_ms: 8.43727
  type: 'test'
  ...
# Subtest: handoff: the derived key, the AAD and the sealed bytes
ok 19 - handoff: the derived key, the AAD and the sealed bytes
  ---
  duration_ms: 2.777632
  type: 'test'
  ...
# Subtest: handoff: an envelope opens for its device and for nobody else
ok 20 - handoff: an envelope opens for its device and for nobody else
  ---
  duration_ms: 17.645061
  type: 'test'
  ...
# Subtest: handoff: the Go and JS halves seal for each other
ok 21 - handoff: the Go and JS halves seal for each other
  ---
  duration_ms: 8.80151
  type: 'test'
  ...
# Subtest: handoff: a truncated envelope is refused before any key work
ok 22 - handoff: a truncated envelope is refused before any key work
  ---
  duration_ms: 0.608987
  type: 'test'
  ...
# Subtest: an item round-trips through create, list and update
ok 23 - an item round-trips through create, list and update
  ---
  duration_ms: 11.053198
  type: 'test'
  ...
# Subtest: nothing readable reaches the network
ok 24 - nothing readable reaches the network
  ---
  duration_ms: 2.721822
  type: 'test'
  ...
# Subtest: item ciphertexts are quantised into 256-byte buckets
ok 25 - item ciphertexts are quantised into 256-byte buckets
  ---
  duration_ms: 1.743756
  type: 'test'
  ...
# Subtest: an item does not open in another slot
ok 26 - an item does not open in another slot
  ---
  duration_ms: 3.040665
  type: 'test'
  ...
# Subtest: every field is present whether or not it was filled in
ok 27 - every field is present whether or not it was filled in
  ---
  duration_ms: 1.090774
  type: 'test'
  ...
# Subtest: the Account Key cache is storage handed in, not reached for
ok 28 - the Account Key cache is storage handed in, not reached for
  ---
  duration_ms: 0.414593
  type: 'test'
  ...
# Subtest: the ZIP reader finds every entry and both compression methods
ok 29 - the ZIP reader finds every entry and both compression methods
  ---
  duration_ms: 3.965313
  type: 'test'
  ...
# Subtest: a file that is not a ZIP is refused with an explanation
ok 30 - a file that is not a ZIP is refused with an explanation
  ---
  duration_ms: 0.547957
  type: 'test'
  ...
# Subtest: a ZIP without export.data is refused rather than half-imported
ok 31 - a ZIP without export.data is refused rather than half-imported
  ---
  duration_ms: 0.455377
  type: 'test'
  ...
# Subtest: a truncated deflate entry is caught by the declared size
ok 32 - a truncated deflate entry is caught by the declared size
  ---
  duration_ms: 33.992304
  type: 'test'
  ...
# Subtest: every item comes across, including the shape that breaks other importers
ok 33 - every item comes across, including the shape that breaks other importers
  ---
  duration_ms: 4.514446
  type: 'test'
  ...
# Subtest: section fields survive, labelled, with concealment preserved
ok 34 - section fields survive, labelled, with concealment preserved
  ---
  duration_ms: 2.86626
  type: 'test'
  ...
# Subtest: an unknown category still imports, and is named in the report
ok 35 - an unknown category still imports, and is named in the report
  ---
  duration_ms: 3.771207
  type: 'test'
  ...
# Subtest: what does not come across is counted, not hidden
ok 36 - what does not come across is counted, not hidden
  ---
  duration_ms: 2.932291
  type: 'test'
  ...
# Subtest: no value in the export goes missing without being reported
ok 37 - no value in the export goes missing without being reported
  ---
  duration_ms: 1.0859
  type: 'test'
  ...
# Subtest: an owner seals a keyset that a different account can open
ok 38 - an owner seals a keyset that a different account can open
  ---
  duration_ms: 18.688113
  type: 'test'
  ...
# Subtest: nobody else can open a member's wrap
ok 39 - nobody else can open a member's wrap
  ---
  duration_ms: 17.035086
  type: 'test'
  ...
# Subtest: a member wrap carries the vault key and not the drop box
ok 40 - a member wrap carries the vault key and not the drop box
  ---
  duration_ms: 6.3206
  type: 'test'
  ...
# Subtest: a member cannot share or rotate
ok 41 - a member cannot share or rotate
  ---
  duration_ms: 1.828598
  type: 'test'
  ...
# Subtest: rotation re-seals every item under the new key
ok 42 - rotation re-seals every item under the new key
  ---
  duration_ms: 9.886662
  type: 'test'
  ...
1..42
# tests 42
# suites 0
# pass 42
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 7354.390576
=== migration-check ===
go run github.com/carlosframework/rastrillo/cmd/rastrillo migration check
rastrillo migration check: models and migrations agree