Packages

package crypto

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. Protected

Package Members

  1. package words

Type Members

  1. trait AsyncExtSign extends AsyncAdaptorSign

    A signing interface for ExtKey

  2. sealed abstract class BIP39Seed extends NetworkElement with MaskedToString
  3. sealed abstract class BaseTxSigComponent extends TxSigComponent

    The TxSigComponent used to evaluate the the original Satoshi transaction digest algorithm.

    The TxSigComponent used to evaluate the the original Satoshi transaction digest algorithm. Basically this is every spk that is not a WitnessScriptPubKey EXCEPT in the case of a P2SH(witness script) ScriptPubKey

  4. case class ChainCode(bytes: ByteVector) extends NetworkElement with Product with Serializable
  5. sealed abstract class ExtKey extends NetworkElement

    Represents an extended key as defined by BIP32 https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki

  6. sealed abstract class ExtKeyPrivVersion extends ExtKeyVersion
  7. sealed abstract class ExtKeyPubVersion extends ExtKeyVersion
  8. sealed abstract class ExtKeyVersion extends NetworkElement
  9. sealed abstract class ExtPrivateKey extends ExtKey with ExtSign with MaskedToString
  10. case class ExtPrivateKeyHardened(version: ExtKeyPrivVersion, depth: UInt8, fingerprint: ByteVector, childNum: UInt32, chainCode: ChainCode, key: ECPrivateKey) extends ExtPrivateKey with Product with Serializable
  11. sealed abstract class ExtPublicKey extends ExtKey
  12. trait ExtSign extends AsyncExtSign with AdaptorSign
  13. sealed abstract class MnemonicCode extends SeqWrapper[String] with MaskedToString

    A mnemonic code conforming to BIP39.

    A mnemonic code conforming to BIP39. BIP39 mnemonic codes consist of a varying number of words (most often English, possible with other languages as well) that can be used to generate an ExtPrivateKey which again can be the root of a BIP32 HD wallet.

  14. sealed abstract class P2SHTxSigComponent extends BaseTxSigComponent
  15. sealed trait SignatureValidationError extends TransactionSignatureCheckerResult

    Indicates that there was an error when evaluating the signature of a transaction

  16. case class TaprootSerializationOptions(tapLeafHashOpt: Option[Sha256Digest], annexHashOpt: Option[Sha256Digest], codeSeparatorPosOpt: Option[UInt32]) extends Product with Serializable

    Options for the taproot signature serialization algorithm as defined in BIP341

  17. case class TaprootTxSigComponent(transaction: WitnessTransaction, inputIndex: UInt32, outputMap: PreviousOutputMap, flags: Seq[ScriptFlag]) extends TxSigComponent with WitnessTxSigComponent with Product with Serializable

    Tx sig component that contains the differences between BIP143 (segwit v0) transaction signature serialization and BIP341.

    Tx sig component that contains the differences between BIP143 (segwit v0) transaction signature serialization and BIP341.

    The unique thing with BIP341 is the message commits to the scriptPubKeys of all outputs spent by the transaction, also

    If the SIGHASH_ANYONECANPAY flag is not set, the message commits to the amounts of all transaction inputs.[18]

    This means we need to bring ALL the outputs we are spending, even though this data structure is for checking the signature of a _single_ output.

    See also

    https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#common-signature-message

  18. trait TransactionSignatureChecker extends AnyRef

    Created by chris on 2/16/16.

    Created by chris on 2/16/16. Responsible for checking digital signatures on inputs against their respective public keys

  19. sealed trait TransactionSignatureCheckerResult extends AnyRef

    The result type returned by checking a signature

  20. sealed abstract class TransactionSignatureCreator extends AnyRef

    Created by chris on 7/21/16.

  21. sealed abstract class TransactionSignatureSerializer extends AnyRef

    Created by chris on 2/16/16.

    Created by chris on 2/16/16. Wrapper that serializes like Transaction, but with the modifications required for the signature hash done https://github.com/bitcoin/bitcoin/blob/93c85d458ac3e2c496c1a053e1f5925f55e29100/src/script/interpreter.cpp#L1016-L1105 bitcoinj version of this https://github.com/bitcoinj/bitcoinj/blob/master/core/src/main/java/org/bitcoinj/core/Transaction.java#L924-L1008

  22. sealed abstract class TxSigComponent extends AnyRef

    Created by chris on 4/6/16.

    Created by chris on 4/6/16. Represents a transaction whose input is being checked against the spending conditions of a ScriptPubKey

  23. sealed trait WitnessTxSigComponent extends TxSigComponent

    The TxSigComponent used to represent all the components necessarily for BIP143.

    The TxSigComponent used to represent all the components necessarily for BIP143. Examples of these ScriptPubKey's are P2WPKHWitnessSPKV0, P2WSHWitnessSPKV0, and P2SH(witness script)

  24. sealed abstract class WitnessTxSigComponentP2SH extends P2SHTxSigComponent with WitnessTxSigComponent

    This represents checking the WitnessTransaction against a P2SH(P2WSH) or P2SH(P2WPKH) scriptPubKey

  25. sealed abstract class WitnessTxSigComponentRaw extends TxSigComponent with WitnessTxSigComponent

    This represents checking the WitnessTransaction against a P2WPKHWitnessSPKV0 or a P2WSHWitnessSPKV0

  26. sealed abstract class WitnessTxSigComponentRebuilt extends TxSigComponent

    This represents a 'rebuilt' ScriptPubKey that was constructed from WitnessScriptPubKey After the ScriptPubKey is rebuilt, we need to use that rebuilt scriptpubkey to evaluate the ScriptSignature See BIP141 for more info on rebuilding P2WSH and P2WPKH scriptpubkeys

Value Members

  1. object BIP39Seed extends Factory[BIP39Seed]

    See also

    BIP32

  2. object BaseTxSigComponent
  3. object ChainCode extends Factory[ChainCode] with Serializable
  4. object ECPrivateKeyUtil
  5. object ExtKey extends Factory[ExtKey] with StringFactory[ExtKey]
  6. object ExtKeyPubVersion extends Factory[ExtKeyPubVersion]
  7. object ExtKeyVersion extends Factory[ExtKeyVersion]

    See also

    SLIP132 for a list of registered HD version bytes

  8. object ExtPrivateKey extends Factory[ExtPrivateKey] with StringFactory[ExtPrivateKey]
  9. object ExtPrivateKeyHardened extends Factory[ExtPrivateKeyHardened] with StringFactory[ExtPrivateKeyHardened] with Serializable
  10. object ExtPublicKey extends Factory[ExtPublicKey] with StringFactory[ExtPublicKey]
  11. object MnemonicCode

    See also

    BIP39

  12. object P2SHTxSigComponent
  13. case object SignatureValidationErrorHashType extends SignatureValidationError with Product with Serializable

    Fails the script if the hash type is not defined on a digital signature

  14. case object SignatureValidationErrorHighSValue extends SignatureValidationError with Product with Serializable

    This indicates that the digital signature did not have a Low S value as per BIP62 https://github.com/bitcoin/bips/blob/master/bip-0062.mediawiki#Low_S_values_in_signatures

  15. case object SignatureValidationErrorIncorrectSignatures extends SignatureValidationError with Product with Serializable

    Signature validation failed because there were not enough correct signatures for the transaction we were given

  16. case object SignatureValidationErrorNotStrictDerEncoding extends SignatureValidationError with Product with Serializable

    Signature validation failed because a signature was not encoded per the BIP66 rules https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki#specification

  17. case object SignatureValidationErrorNullFail extends SignatureValidationError with Product with Serializable

    Fails the script if a an invalid signature is not an empty byte vector See BIP146 https://github.com/bitcoin/bips/blob/master/bip-0146.mediawiki#nullfail

  18. case object SignatureValidationErrorPubKeyEncoding extends SignatureValidationError with Product with Serializable

    This indicates that the public key was not encoded correctly according to this function https://github.com/bitcoin/bitcoin/blob/528472111b4965b1a99c4bcf08ac5ec93d87f10f/src/script/interpreter.cpp#L214-L223

  19. case object SignatureValidationErrorSignatureCount extends SignatureValidationError with Product with Serializable

    This indicates that the signature validation failed because we have more signatures left to check than public keys remaining to check them against see https://github.com/bitcoin/bitcoin/blob/master/src/script/interpreter.cpp#L914-915

  20. case object SignatureValidationErrorWitnessPubKeyType extends SignatureValidationError with Product with Serializable

    Fails the script if the given public key was not compressed and the org.bitcoins.core.script.flag.ScriptVerifyWitnessPubKeyType flag was set

  21. case object SignatureValidationSuccess extends TransactionSignatureCheckerResult with Product with Serializable

    Represents the case that the signatures checked inside of the transaction were all validly encoded as per the script verify flag & that the signatures were valid when checked against the public keys

  22. object TaprootSerializationOptions extends Serializable
  23. object TransactionSignatureChecker extends TransactionSignatureChecker
  24. object TransactionSignatureCreator extends TransactionSignatureCreator
  25. object TransactionSignatureSerializer extends TransactionSignatureSerializer
  26. object TxSigComponent
  27. object WitnessTxSigComponent
  28. object WitnessTxSigComponentP2SH
  29. object WitnessTxSigComponentRaw
  30. object WitnessTxSigComponentRebuilt

Ungrouped