SecretSplitter (Bouncy Castle Library 1.85 API Specification)
Date: 2026-07-12

org.bouncycastle.crypto.threshold

## Interface SecretSplitter

- All Known Implementing Classes:
    ShamirSecretSplitter

      public interface SecretSplitter

  Secret sharing (also called secret splitting) refers to methods for distributing a secret among a group. In this process, no individual holds any intelligible information about the secret. However, when a sufficient number of individuals combine their 'shares', the secret can be reconstructed.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `SplitSecret` | `resplit(byte[] secret, int m, int n)` Creates secret shares from a given secret.
    `SplitSecret` | `split(int m, int n)` Creates secret shares.
    `SplitSecret` | `splitAround(SecretShare s, int m, int n)` Creates secret shares from a given secret share.

- - ### Method Detail

    - #### split

          SplitSecret split(int m,
                            int n)

      Creates secret shares. The secret will be divided into shares, where the secret has a length of L bytes.
      Parameters:
        `m` - A threshold number of shares
        `n` - Total number of shares
      Returns:
        An array of `byte[][]` representing the generated secret shares for m users with l bytes each.

    - #### splitAround

          SplitSecret splitAround(SecretShare s,
                                  int m,
                                  int n)
                           throws java.io.IOException

      Creates secret shares from a given secret share. The secret will be divided into shares, where the secret has a length of L bytes.
      Parameters:
        `m` - A threshold number of shares
        `n` - Total number of shares
      Returns:
        An array of `byte[][]` representing the generated secret shares for m users with l bytes each.
      Throws:
        `java.io.IOException`

    - #### resplit

          SplitSecret resplit(byte[] secret,
                              int m,
                              int n)

      Creates secret shares from a given secret. The secret will be divided into shares, where the secret has a length of L bytes.
      Parameters:
        `m` - A threshold number of shares
        `n` - Total number of shares
      Returns:
        An array of `byte[][]` representing the generated secret shares for m users with l bytes each.