package crypto
- Alphabetic
- Public
- Protected
Type Members
- trait AsyncExtSign extends AsyncAdaptorSign
A signing interface for ExtKey
- sealed abstract class BIP39Seed extends NetworkElement with MaskedToString
- 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
- case class ChainCode(bytes: ByteVector) extends NetworkElement with Product with Serializable
- sealed abstract class ExtKey extends NetworkElement
Represents an extended key as defined by BIP32 https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki
- sealed abstract class ExtKeyPrivVersion extends ExtKeyVersion
- sealed abstract class ExtKeyPubVersion extends ExtKeyVersion
- sealed abstract class ExtKeyVersion extends NetworkElement
- sealed abstract class ExtPrivateKey extends ExtKey with ExtSign with MaskedToString
- case class ExtPrivateKeyHardened(version: ExtKeyPrivVersion, depth: UInt8, fingerprint: ByteVector, childNum: UInt32, chainCode: ChainCode, key: ECPrivateKey) extends ExtPrivateKey with Product with Serializable
- sealed abstract class ExtPublicKey extends ExtKey
- trait ExtSign extends AsyncExtSign with AdaptorSign
- 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.
- sealed abstract class P2SHTxSigComponent extends BaseTxSigComponent
- sealed trait SignatureValidationError extends TransactionSignatureCheckerResult
Indicates that there was an error when evaluating the signature of a transaction
- 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
- 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
- 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
- sealed trait TransactionSignatureCheckerResult extends AnyRef
The result type returned by checking a signature
- sealed abstract class TransactionSignatureCreator extends AnyRef
Created by chris on 7/21/16.
- 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
- 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
- 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)
- sealed abstract class WitnessTxSigComponentP2SH extends P2SHTxSigComponent with WitnessTxSigComponent
This represents checking the WitnessTransaction against a P2SH(P2WSH) or P2SH(P2WPKH) scriptPubKey
- sealed abstract class WitnessTxSigComponentRaw extends TxSigComponent with WitnessTxSigComponent
This represents checking the WitnessTransaction against a P2WPKHWitnessSPKV0 or a P2WSHWitnessSPKV0
- 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
- object BIP39Seed extends Factory[BIP39Seed]
- See also
- object BaseTxSigComponent
- object ChainCode extends Factory[ChainCode] with Serializable
- object ECPrivateKeyUtil
- object ExtKey extends Factory[ExtKey] with StringFactory[ExtKey]
- object ExtKeyPrivVersion
- object ExtKeyPubVersion extends Factory[ExtKeyPubVersion]
- object ExtKeyVersion extends Factory[ExtKeyVersion]
- See also
SLIP132 for a list of registered HD version bytes
- object ExtPrivateKey extends Factory[ExtPrivateKey] with StringFactory[ExtPrivateKey]
- object ExtPrivateKeyHardened extends Factory[ExtPrivateKeyHardened] with StringFactory[ExtPrivateKeyHardened] with Serializable
- object ExtPublicKey extends Factory[ExtPublicKey] with StringFactory[ExtPublicKey]
- object MnemonicCode
- See also
- object P2SHTxSigComponent
- case object SignatureValidationErrorHashType extends SignatureValidationError with Product with Serializable
Fails the script if the hash type is not defined on a digital signature
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- object TaprootSerializationOptions extends Serializable
- object TransactionSignatureChecker extends TransactionSignatureChecker
- object TransactionSignatureCreator extends TransactionSignatureCreator
- object TransactionSignatureSerializer extends TransactionSignatureSerializer
- object TxSigComponent
- object WitnessTxSigComponent
- object WitnessTxSigComponentP2SH
- object WitnessTxSigComponentRaw
- object WitnessTxSigComponentRebuilt