Commit Graph

107 Commits

Author SHA1 Message Date
Ryan X. Charles 378dc923ef preserve claimed length and op code
When parsing OP_PUSHDATAX commands, the the length of data might not require
the size integer of OP_PUSHDATAX. For instance, you might write 1 byte, and yet
use OP_PUSHDATA4. We need to record which OP_PUSHDATAX was used so that when we
write the buffer back out, we can write the same one. Also, the claimed length
may be different. For instance, we may OP_PUSHDATA of length 100 to the stack,
but there may only be 50 bytes left in the script. In that case, buf.length and
chunk.len will be different. I'm not sure if that would be considered a valid
script, but in any case, for script analysis, we need both values.
2014-09-01 17:27:39 -07:00
Ryan X. Charles e3aa93614e one more test to make sure things are working 2014-09-01 16:44:27 -07:00
Ryan X. Charles 697b3e5009 Script().fromBuffer(buf)
...code heavily inspired/copied from bitcore
2014-09-01 16:41:07 -07:00
Ryan X. Charles 8b3ad7ac85 read a buffer, like slicing while iterating pos 2014-09-01 16:40:31 -07:00
Ryan X. Charles 572582938f more convenient bufferreader 2014-09-01 15:53:26 -07:00
Ryan X. Charles 15801773e3 the beginnings of script 2014-09-01 15:45:03 -07:00
Ryan X. Charles 6a26813955 p2sh -> scripthash
more appealing and memorable name
2014-09-01 12:06:18 -07:00
Ryan X. Charles a0150f82ef fromNumber, toNumber, fromString, toString
...like the rest of the library.
2014-08-31 20:38:39 -07:00
Ryan X. Charles 03578e2ba5 Opcode
...code from bitcore
2014-08-29 19:24:51 -07:00
Ryan X. Charles c59013eb46 remove useless Address dependency from Keypair
to get an address from a key, just do Address().fromPubkey(key.pubkey)
2014-08-29 15:42:30 -07:00
Ryan X. Charles f028b6b913 Stealth -> Stealthkey
More explanatory. Will break up into separate Stealthkey, StealthAddress, and
StealthMessage classes.
2014-08-29 14:34:01 -07:00
Ryan X. Charles 32fabd0c0f Key -> Keypair
"Keypair" is a more explanatory name, and also should be less confused with
other kinds of keys (particularly "cipher keys", which are the keys used in
symmetric block ciphers, especially AES).
2014-08-29 14:18:56 -07:00
Ryan X. Charles 40a2007e18 confusingly named SymEnc -> accurately named AESCBC
This will also further discourage use amongst anyone who doesn't understand
what this is.
2014-08-29 13:07:49 -07:00
Ryan X. Charles bdb8daaf07 remove redundant "test." from test names 2014-08-29 13:01:05 -07:00
Ryan X. Charles faa7a81cac Key().fromPrivkey() 2014-08-29 12:43:55 -07:00
Ryan X. Charles 40e8dfec06 compressed by default with fromRandom 2014-08-29 12:38:43 -07:00
Ryan X. Charles 5313085773 Pubkey().fromPrivkey() 2014-08-28 20:19:30 -07:00
Ryan X. Charles c39acbcca3 Privkey().fromRandom() 2014-08-28 19:27:22 -07:00
Ryan X. Charles 280578d641 network -> networkstr
...for compatibility with address, and to make the types obvious
2014-08-28 17:53:11 -07:00
Ryan X. Charles e2824035bb Pubkey.prototype.set 2014-08-28 17:41:38 -07:00
Ryan X. Charles 356ddcfa4e test invalid address 2014-08-28 17:32:08 -07:00
Ryan X. Charles ac47796acd .isValid() is more convenient than .validate() 2014-08-28 17:30:32 -07:00
Ryan X. Charles 109f31cfdb Privkey.prototype.set 2014-08-28 17:26:56 -07:00
Ryan X. Charles 6b4bc4c49c Stealth.prototype.set 2014-08-28 17:00:34 -07:00
Ryan X. Charles 0ca390d45b Message.prototype.set 2014-08-28 16:42:47 -07:00
Ryan X. Charles a5f79c7651 Signature.prototype.set 2014-08-28 16:38:21 -07:00
Ryan X. Charles 28d3a40704 Key.prototype.set 2014-08-28 16:18:36 -07:00
Ryan X. Charles 75c1503a92 ECDSA.prototype.set 2014-08-28 16:07:28 -07:00
Ryan X. Charles 0d9b54711e BufferWriter.prototype.set 2014-08-28 16:02:24 -07:00
Ryan X. Charles 3475ee973c BufferReader.prototype.set 2014-08-28 15:52:32 -07:00
Ryan X. Charles 3919b24685 make bip32 mostly compatible with the rest of the lib
the constructor shouldn't do much. just set some varibles. in this case, i have
yet to write the code that sets the varibles. but better this than
autogenerating a new random BIP32. for that, call fromRandom()
2014-08-28 15:38:29 -07:00
Ryan X. Charles d50d766352 Base58Check.prototype.set 2014-08-28 15:31:06 -07:00
Ryan X. Charles da8989b649 add set function to Base58 2014-08-28 15:27:58 -07:00
Ryan X. Charles 6b7592d67b add address validation convenience function 2014-08-28 15:22:03 -07:00
Ryan X. Charles f52e679f93 refactor address - use "set" function
...intend for this to become standard throughout the lib
2014-08-28 15:18:48 -07:00
Ryan X. Charles cc316e9455 ECIES 2014-08-28 14:43:21 -07:00
Ryan X. Charles 6f54d4cde6 Encryption -> SymEnc
This is more explanatory ("symmetric encryption") and also does not encourage
its use for people who don't know what they're doing. (It should only be used
in combination with some type of message authentication.)
2014-08-28 11:10:40 -07:00
Ryan X. Charles 1cb2f900af symmetric encryption convenience class 2014-08-27 17:15:10 -07:00
Ryan X. Charles ae02a878dd woops ... actually check that output is correct 2014-08-27 15:57:46 -07:00
Ryan X. Charles ed826bf95c add test to make sure AES works with CBC 2014-08-27 15:37:54 -07:00
Ryan X. Charles a8e3e0b993 static methods start with @ in tests 2014-08-27 14:37:28 -07:00
Ryan X. Charles ce98b87d90 add it description 2014-08-27 14:37:01 -07:00
Ryan X. Charles 429a2d099f test decrypt 2014-08-27 14:36:23 -07:00
Ryan X. Charles 73b904ce21 CBC decrypt 2014-08-25 21:16:33 -07:00
Ryan X. Charles dfa190b5a5 blockbufs2buf 2014-08-25 21:02:00 -07:00
Ryan X. Charles ae319ffcbc unpad 2014-08-25 20:53:29 -07:00
Ryan X. Charles a6e74666c8 decrypt blocks 2014-08-25 20:38:39 -07:00
Ryan X. Charles eddeb60d7d decrypt block 2014-08-25 20:25:18 -07:00
Ryan X. Charles 97e40f9ac6 rename keybuf -> cipherkeybuf
...since this use of "key" is very different than the public/private key pair
that is key.js
2014-08-25 16:38:53 -07:00
Ryan X. Charles a09cac4ba6 block cipher should support "encrypt" and "decrypt" 2014-08-25 16:30:04 -07:00