* Encapsulate initialization of DLCOracle.start() method
* Use internal WalletAppConfig.kmConf rather than passing in custom key manager parameters
* Add KeyManagerAppConfig.defaultAccountType
* Get all tests passing besides TrezorAddressTest
* Get TrezorAddressTest passing with provided entropy
* Add unit test to make sure we can always derive the seed
* Get docs compiling
* Fix dlcWalletTest test cases
* Add more test cases to keymanager
* Add the new configuration to the example configuration
* Add more test cases
* Remove coverage on 2.12 as it isn't accurate
* Rework DLCOracleAppConfig.start() to call kmConf.start() so the oracle can use entropy provided via bitcoin-s.conf
* Removed type parameter from PublicKey
* Deduplicated call to public key decompression in isFullyValid
* Fixed FieldElement
* Added CurveCoordinate to replace FieldElement in places where it was being misused
* Added edge case tests
* Removed ExecutionContext from ECKey
* Refactored ECPublicKey to remove compression state and introduced ECPublicKeyBytes to handle cases where serialization of input is important
* Fixed the rest of bitcoin-s so that it passes all tests
* Made all ECKeys into case classes
* Successfully added isFullyValid invariant to ECPublicKey!
* Fixed docs
* Added scaladocs and fixed a RpcPsbtResult bug
* Reject private keys of length < 32 and fix WIF parsing bug
* Replaced secp256k1 with secp256k1-zkp as submodule pointing to my java-bindings branch
* Built new binaries for schnorr signing and adaptor signing and integrated into LibSecp256k1CryptoRuntime
* Added public key compression function with tests, removed old adaptor signature point serializers
* Implemented ECDSA adaptor signatures in scala according to the most recent spec
* Added static test vectors for adaptor signing from spec
* Moved bouncy castle adaptor signing tests to .jvm
* Added scaladocs and responded to nits
* Added scaladocs with legends to spec naming
* Responded to Ben's review
* Fixed scala 2.12 compile issue
* Fixed BouncyCastle secKeyVerify
* Updated add-to-jni build instructions
* Updated secp256k1-zkp to target bitcoin-s-master
* Add windows binary (#14)
* Added Mac OS binaries
Co-authored-by: benthecarman <benthecarman@live.com>
* Schnorr sigs for Scala.js
* fix build
* put BIP340 test vectors in a shared space
* remove teskit dependency, fix point edge cases
* fix build
* Adaptor signatures for Scala.jsr
* add some more tests
* add unit tests for point addition
* scaladoc
* add more public keys tests
* Add scaladoc
* Remove extra isCompressed flag on CryptoRuntime.toPublicKey() as it is inside of ECPrivateKey already
Co-authored-by: christewart <stewart.chris1234@gmail.com>
* Schnorr sigs for Scala.js
* fix build
* put BIP340 test vectors in a shared space
* remove teskit dependency, fix point edge cases
* fix build
* add unit tests for point addition
* scaladoc
* cleanup
* respond to the comments
* Fix usage of BitcoinSLogger
Co-authored-by: christewart <stewart.chris1234@gmail.com>
* Get cryptoTest,coreTest projects working with scala-js
Get build working, now moving onto compile
Move jvm specific cryptoTest's into the .jvm sub project
Rework build definition names to be more concise
Fix missing cryptoTest refactor
Move logback-test.xml into jvm specific resource folder so it doesn't get ignored
Make coreTest a crossProject
Rework ci matrix to work with new project structure
Try to fix CI matrix
CI fix part 2
* Apply commonSettings to all cross projects
* Address part of roman's code review, make coreJS, make cryptoTest.dependOn(crypto)
* WIP to share with scala-js community
* Fix scalac compiler settings to be additive in CommonSettings.settings
* Remove BCryptoTest
* Refactor AsyncUtil to just use an execution context rather than an actor system
* Create testkit-core, start moving data structures over to testkit-core
* WIP, getting rid of the hard dependency on BitcoinSAsyncTest and akka
* Rework test traits to not be dependnent on akka, move BaseAsyncTest into testkitCore, add a test trait that just uses the default scala executionContext
* Get everything compiling
* Move logback-test.xml to testkit-core so it applies to coreTest,cryptoTest as well
* Cleanup rebase issues
* Fix Deps.scala
* Address ben's code review
* Segregate jvm settings and compiler settings
* Filter out -Xfatal-warning for scalajs for now since there is a ton of errors
* Move maintainer settings into CommonSettings.settings
* Move CryptoParams to shared crypto project, make BouncyCastleCryptoParams for bouncy castle specific things
* Rework build structure to work better with scalajs
* Add unit test to make sure CryptoParams & BouncyCastleCryptoParams are consistent
* Refactor crypto module to be compatible with Scala.js
* more changes
* some more changes
* abstract out Schnorr stuff
* abstract out adapter stuff
* cleanup
* some more cleanup
* fix build
* Removed references to ECPoint outside of .jvm scope
* remove references to ECPoint from the shared code
* cleanup
* remove cirlular dependencies
* more cleanup
* cleanup
* move SipHash to CryptoContext
* scaladoc
* scalafmt
Co-authored-by: nkohen <nadavk25@gmail.com>
* Cleanup a bunch of imports in test
* Use @nowarn annotation for testing things that are deprecated
* Fix base58 test
* Cleanup crypto-test
* Use scala collection compat dependency to get access to the @nowarn annotation on scala 2.12.x
* Rework more scala 2.13.x compile failures in chain-test and key-manager-test
* Optimize imports for entire project
* Fix nits
* Apply string factory to a bunch of easy things
* Refactor HDPath, ExtKey, and LnTagPrefix to use StringFactory
* Implemen StringFactory on LnHumanReadablePart, ScriptType, ServiceIdentifier
* Implement StringFactory on AesCrypt, NodeUri, AddressTag, PSBT, TxoState
* Fix failing tests, fix website compile
* Apply StringFactory to all ScriptOperations, ChannelState, Script Parsing
* Added signing with entropy to the JNI and implemented low R signing
* Added check for determinism of low R signing
* Cleaned up test
* Implemented signing with entropy in Bouncy Castle
* Added docs for signing with entropy
* Fixed things after rebase
* De-parallelized signLowR and added scaladoc warnings to signWithEntropy
* Update scalafmt-core to 2.6.0
* Upgrade scalafmt, fix all formatting errors
* Scalafmt on 2.12
* fix test
* More fixes
Co-authored-by: Ben Carman <benthecarman@live.com>
* Pulled down crypto things from dlc branch including: Schnorr data structures, Schnorr Bouncy Castle implementation, FieldElement, and tests for these things
* Call fromValidHex in CryptoUtil
* Implemented parseDERLax signature parsing and bumped bouncy castle version to most recent
* implemented using iterators
* Factored out common functionality and added comments, it is readable now! Deleted C-like version in place of this one after property based tests showed them to be equivalent
* Made compatible with scala 2.12
* Make compatible with scala 2.11
* Added tests for lax DER signatures
* Added crypto project and decoupled BitcoinSLogger from NetworkElement
Decoupled BitcoinSLogger from Factory
Moved NetworkElement into crypto project
Moved Factory and BitcoinSUtil (renamed to BytesUtil) to crypto project
Moved MaskedToString to crypto project
Added BytesUtil to imports and cleaned up CryptoUtil.recoverPoint
Moved the rest of crypto stuff to the crypto project
Moved crypto tests to crypto-test project
* Added documentation for crypto project