Skip to content

Update dependency decibel to v1 - #198

Closed
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/decibel-1.x
Closed

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/decibel-1.x

Conversation

@renovate

@renovate renovate Bot commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change
decibel (source) prod major ~> 0.2 → ~> 1.0

Release Notes

ausimian/decibel (decibel)

v1.0.1

Compare Source

Fixed
  • Link the README's documentation list to HexDocs and its security policy to
    the repository. The hex.pm package page rewrites repository-relative links
    into tarball previews, so those entries served raw markdown and the security
    policy link returned 404.

v1.0.0

Compare Source

Decibel 1.0 establishes its first stable public API, strengthens protocol-boundary
validation, and documents a safer integration contract. The project remains
unaudited and has not been declared production-ready; see the
security posture.

Added
  • Add Decibel.ReplayWindow, a pure bitmap replay helper for
    application-owned connectionless state, with executable guidance for
    ordered, lossy in-order, and lossy reordered transports.
  • Publish a Getting Started guide with runnable NN and IK examples, application
    framing, remote-key trust validation, and focused recipes for keys, PSKs,
    handshake payloads, channel binding, rekeying, fallback, connectionless
    delivery, session cleanup, and error handling, alongside dedicated security,
    Noise Pipes, connectionless transport, and 1.0 upgrade guides.
  • Publish the supported Noise r34 patterns, modifiers, primitives, and runtime
    combinations, together with safe-use guidance for peer authentication, key
    and PSK handling, negotiation, framing, replay protection, rekeying, and
    failure handling.
  • Add a security policy with private vulnerability reporting and a
    latest-release support policy.
  • Add stable, machine-readable exception contracts for peer-message failures,
    nonce failures, discarded one-way directions, and session ownership,
    lifetime, and phase errors. Rejected operations leave session state
    unchanged.
Changed
  • Breaking: Require Elixir ~> 1.18 instead of ~> 1.14. Migration:
    upgrade the application to Elixir 1.18 or later before updating Decibel.
  • Breaking: Make handshake_complete?/1, handshake_hash/1, nonce/2,
    and remote_key/1 the canonical accessors. Migration: rename calls from
    is_handshake_complete?/1, get_handshake_hash/1, get_nonce/2, and
    get_remote_key/1; the 0.2 names remain deprecated aliases until 2.0.
  • Breaking: Replace bare session references with opaque, owner-aware
    handles and reject cross-process, closed, unknown, and phase-invalid use with
    Decibel.SessionError. Migration: treat handles as opaque, drop 0.2-era
    is_reference/1 checks on session values, perform every operation serially
    in the process that called new/4, call close/1 when finished, and create a
    new session after the owner exits.
  • Make the raising API contract explicit: data-producing operations return
    their payload directly, state-only operations return :ok, and rejected
    operations raise stable exceptions without committing session state.
  • Breaking: Enforce initiator-to-responder transport direction after the
    one-way N, K, and X handshakes. Migration: only the initiator may
    encrypt and only the responder may decrypt; choose an interactive pattern
    when the application needs bidirectional transport.
  • Breaking: Reject attempts to move an outbound transport nonce backwards.
    Migration: read the next outbound value with nonce/2, leave it unchanged
    or move it forward only, and keep application-owned replay state when
    selecting inbound nonces with set_nonce/3.
  • Breaking: Generate a fresh local ephemeral keypair for every ordinary
    handshake and reject caller-supplied ephemeral keys outside fallback
    pre-messages. Migration: omit :e and :re for ordinary handshakes and
    supply them only for their role-specific fallback pre-message within the
    same Noise Pipes run.
  • Breaking: Enforce Noise's 65,535-byte limit for handshake and transport
    messages. Transport plaintexts are limited to 65,519 bytes to leave room for
    the authentication tag. Migration: split larger logical messages and
    preserve and authenticate Noise message boundaries in application framing.
  • Make connectionless replay protection explicitly application-owned, with a
    bounded replay-window example that records nonces only after successful
    authentication and guidance for coordinated rekeying.
  • Correct handshake-hash, Diffie-Hellman keypair, and nonce types so HexDocs
    accurately describes 32- and 64-byte hashes, stored keypairs, usable nonce
    bounds, and the reserved exhaustion value.
Removed
  • Breaking: Remove the unsupported custom :registry construction option.
    Migration: select a supported Noise r34 pattern from Decibel's built-in
    registry; :swap remains available for interactive fallback handshakes.
Fixed
  • Validate all role-specific static key material, fallback ephemerals, prologue
    data, and construction options during session creation, raising stable
    field-level errors before storing session state. Configurations that
    previously failed later must now provide exactly the key material required by
    the selected role and fully modified pattern.
  • Reject malformed or non-canonical Noise protocol names, invalid modifier
    placements, and missing, malformed, or unused pre-shared keys during session
    creation instead of silently omitting PSK authentication.
  • Return Decibel.DecryptionError with a stable reason for truncated,
    unauthenticated, or invalid-key peer messages, preserving processed remote
    keys and leaving session state unchanged.
  • Allow Noise's final usable transport nonce (2^64 - 2) once, then raise
    Decibel.NonceError on exhaustion; set_nonce/3 now rejects reserved,
    negative, non-integer, and oversized nonce values without changing session
    state.

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate

renovate Bot commented Sep 21, 2026

Copy link
Copy Markdown
Contributor Author

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: mix.lock
/usr/local/bin/mix: line 18: /opt/containerbase/tools/elixir/1.20.4/bin/mix: No such file or directory

@bbangert bbangert closed this Sep 21, 2026
@renovate
renovate Bot deleted the renovate/decibel-1.x branch September 21, 2026 22:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant