Commit Graph

916 Commits (2670982d0076edd85a5a684a83300c5c54fd30f9)

Author SHA1 Message Date
jMyles 152ab56417 Touching up generate_kfrags docstrings. 2018-02-24 02:08:22 -08:00
jMyles f9833f7d0d Moved Ursula's REST bits to a new class. 2018-02-24 02:08:17 -08:00
jMyles e1b4f242ab Tearing out all lookup_actor logic. Also, as @tuxxy pointed out a while ago, there's really no reason to have Character.hash(); we can just use keccak_digest. 2018-02-24 01:53:20 -08:00
jMyles 857a91855a We don't do lookup_actor anymore. 2018-02-24 01:45:50 -08:00
jMyles 5ce725f368 PowerUps no longer need to provide functions themselves; they can indicate that they provide functions from their keypair. 2018-02-24 01:44:36 -08:00
jMyles 87af827a68 Reducing the number of functions called generate_kfrags. 2018-02-24 01:44:14 -08:00
jMyles 0355191288 Character.decrypt() now also uses new power_ups interface. 2018-02-24 01:43:54 -08:00
jMyles 6f870950d1 Don't need sign here anymore. 2018-02-24 01:27:08 -08:00
jMyles 86b8169264 Moving `sign` into `Character`; cleaning up Powers. 2018-02-24 01:22:23 -08:00
jMyles fe993e13b5 Matching error classes to PowerUps. 2018-02-24 01:14:13 -08:00
jMyles 7d7b0023a2 Public way to lookup power_ups for CryptoPower. 2018-02-24 01:13:58 -08:00
jMyles c26f5e6d5b Better way to get public keys. 2018-02-24 01:13:40 -08:00
jMyles 6d38ff2509 privkey is not _privkey. 2018-02-24 00:50:28 -08:00
jMyles 49005ae250 generate_kfrags all the way down. 2018-02-24 00:50:09 -08:00
jMyles 62c8493840 Pushing generate_kfrags downward so as to make private key... private. 2018-02-24 00:49:40 -08:00
jMyles f42576e439 Major simplification of encrypt_for. 2018-02-24 00:48:56 -08:00
jMyles 3a9a8ed752 Don't need to lookup the actor any more. 2018-02-24 00:48:30 -08:00
jMyles 872cef81a2 Smoothing out Powers; redlines through plenty of obselete functionality surrounding path keys in EncryptingPower. 2018-02-23 23:36:40 -08:00
jMyles f89d13c4a0 Seal -=> SignatureStamp 2018-02-23 22:39:10 -08:00
jMyles 760e0a8129 Reflectin refractor of umbral.umbral to umbral.pre. 2018-02-23 22:02:32 -08:00
jMyles 9a5bdb4061 Don't need _contracts anymore. See #127. 2018-02-23 21:47:49 -08:00
jMyles c7d2d97d72 More cleanups throughout Character. 2018-02-23 21:41:54 -08:00
jMyles 78cf0b66de Better docstring and type hint for generate_kfrags. 2018-02-23 21:38:46 -08:00
jMyles 57e3fc4f51 Import fixes and other PEP8 stuff. 2018-02-23 21:37:41 -08:00
jMyles 90504b4814 Proper exception instead of just an assertion. 2018-02-19 15:19:18 -08:00
jMyles 08f7d0a7c0 Tightened __repr__ with help from @kprasch. 2018-02-19 15:19:04 -08:00
jMyles 3c63ece916 Don't need this method anymore now that we have MessageKit. 2018-02-19 15:18:47 -08:00
jMyles 73306a9094 Save the WorkOrder the first time - the waiting thing wasn't making sense. 2018-02-19 15:18:32 -08:00
jMyles 7a0c21a0a5 We save WorkOrders in WorkOrderHistory now. 2018-02-19 15:16:50 -08:00
jMyles 5900e4c2ed Better legality check (casting to bytes instead of letting kademlia cast to str) 2018-02-18 17:34:08 -08:00
jMyles 7865d1c230 dict-style looking of WorkOrder by Capsule. 2018-02-18 17:32:08 -08:00
jMyles b788ac39ee Cleaner getting of Ursula's interface ID, but this is still to be replaced by a Kit of some kind. 2018-02-18 17:31:50 -08:00
jMyles 0fa87828fd More WorkOrder logic; giving Bob more handles to grasp during his REST-client logic. 2018-02-18 17:29:08 -08:00
jMyles c52a5ce800 Typical byte-like methods. 2018-02-18 17:18:42 -08:00
jMyles 2cfd0b2ab3 InterfaceDHTKey class for more lookup flexibility. 2018-02-18 13:29:37 -08:00
jMyles bc6bd9d0a8 We'll just do use the dict-like interface from now on - makes the Bob parts way easier to read. 2018-02-18 13:28:44 -08:00
jMyles ba0bb10676 Why hasn't Character.hash always been a staticmethod? 2018-02-18 13:20:45 -08:00
jMyles 24b039e227 Beginning of implementation of WorkOrderHistory. 2018-02-18 13:20:43 -08:00
jMyles 307bae3e3a Giving Bob a better facility for tracking his CFrags. 2018-02-18 13:04:33 -08:00
jMyles 2b87cf3b8e It's on. Here we go. 2018-02-17 23:36:33 -08:00
jMyles 97c19b5693 TODO responding to @tuxxy's comment: https://github.com/nucypher/nucypher-kms/pull/160#discussion_r168861353 and https://github.com/nucypher/nucypher-kms/pull/160#discussion_r168861465 2018-02-17 17:26:24 -08:00
jMyles b4a66356df Fixes and TODOs in response to a number of comments from @tuxxy, @kprasch, and @cygnusv. 2018-02-15 15:55:40 -08:00
jMyles fd4accf3f5 Header lengths and types implemented in network. 2018-02-15 12:31:16 -08:00
jMyles e7eeee937c header length constant. 2018-02-15 12:31:00 -08:00
jMyles f594d3dd2b Replacing header-length int with constant in Character. 2018-02-15 12:30:43 -08:00
jMyles 023d9705f0 Shortening headers to two bytes, and deprecating lstrip as a way to eat headers. See #111. Fixes #164. 2018-02-14 23:45:23 -08:00
jMyles 3b9ae94b5b Fixed those last two pesky tests - now that we're splitting with MessageKit, we don't need to split again. 2018-02-14 00:19:26 -08:00
jMyles 31dfbaa3e9 Moving over to MessageKit.to_bytes. 2018-02-14 00:18:31 -08:00
jMyles 424a75b4ef Get outta here with that. 2018-02-14 00:18:11 -08:00
jMyles 57971c447e Some tighter names. 2018-02-14 00:17:37 -08:00
jMyles 7b84024bd8 pubkey_sig_tuple is gone. 2018-02-14 00:17:12 -08:00
jMyles 112746363b MessageKit now casts strictly to ciphertext. Moved previous serialization to to_bytes, which we'll start to implement as a component-style interface. 2018-02-14 00:16:26 -08:00
jMyles 9325222885 OK, I'm buckling and finally providing Character.decrypt() - just a wrapper around their encrypting power, but now a public way to decrypt without specifying an actor or checking a signature. 2018-02-14 00:11:34 -08:00
jMyles 64f9f8c550 Clearing up verify_from logic and adding some TODOs which are worth taking some time to consider. 2018-02-14 00:11:15 -08:00
jMyles e1862657a8 Slightly tightened encrypt_for logic. 2018-02-14 00:07:55 -08:00
jMyles 30d273c43b verify_from can take bytes too. It can probably take other types and work, but we'll just hint MessageKit and bytes. We cast to bytes anyway. 2018-02-14 00:04:05 -08:00
Kieran R Prasch 2d92ed7dc7 New API renaming, and more style. 2018-02-13 17:50:46 -08:00
Kieran R Prasch 37a7fc5f84 Adds utility to get fingerprint from key. 2018-02-13 17:49:55 -08:00
Kieran R Prasch 895d17a31d Adds Pep and style changes. 2018-02-13 17:49:26 -08:00
Kieran R Prasch 022087f67a Fixes Db bulk delete assertion; Renames several key test method calls 2018-02-13 17:37:40 -08:00
tuxxy 6428337ab5 Add broken sqlalchemy delete 2018-02-13 17:37:40 -08:00
tuxxy 31a091bcce Some fixes in keystor and related tests 2018-02-13 17:37:40 -08:00
jMyles 734a334a77 Walking back the seal change for now. 2018-02-13 17:35:12 -08:00
jMyles 6ac0bee751 Extraneous comment. 2018-02-13 17:34:07 -08:00
jMyles 8f6c4b4a2f Capsule instead of PFrag. Feels so good. 2018-02-13 15:44:47 -08:00
jMyles c62e39917a CFrag splitter. 2018-02-13 15:43:38 -08:00
jMyles 258407450f Get the length from the message_class, not necessarily this object. 2018-02-13 15:43:06 -08:00
jMyles 032d5e6f3f Way more elegant __init__ for BytestringSplitter; with better error messages for misuse. 2018-02-13 15:42:07 -08:00
jMyles e3f347979e No more metabytyes! 2018-02-13 15:29:35 -08:00
jMyles 4b1cef51bf Now we pass the whole capsule! 2018-02-13 15:10:25 -08:00
tuxxy 7daab1f096 Add test_keypairs 2018-02-13 14:00:15 -07:00
jMyles 732b75bfd6 WorkOrders now take Capsules. 2018-02-13 13:28:51 -07:00
jMyles 481e56653c capsules instead of pfrags! So nice. 2018-02-13 13:28:51 -07:00
tuxxy d0bfd4ae0d WIP on rm-crypto: 2b73b14 Merge pull request #11 from jMyles/rm-crypto 2018-02-13 13:28:39 -07:00
jMyles 7d53c82f74 Starting MessageKit for TreasureMap flow. 2018-02-13 11:09:59 -08:00
jMyles e08f75ab71 Some fields are now nullable; passing None by default. 2018-02-13 11:09:32 -08:00
jMyles 41c4a920de Making full relationship flow for key FK. 2018-02-13 11:09:08 -08:00
jMyles c97635dd86 public key is no longer optional on Signature.verify. 2018-02-13 11:08:49 -08:00
jMyles bc01f5d07a Fixing sig up to work with cryptography ECDSA. 2018-02-13 11:08:28 -08:00
jMyles 261d501bd8 Grabbing contract from keystore instead of dict. 2018-02-13 11:08:18 -08:00
jMyles 0def1591fc Starting deprecation of _contracts - commented out some logic for now. 2018-02-13 11:07:56 -08:00
jMyles e45712a75b "Non-decrypt" flow for Character signature validation. 2018-02-13 11:07:39 -08:00
jMyles 8e77ee97d0 hrac as hex (DB entry will now match URL). 2018-02-13 07:42:40 -08:00
jMyles 8dda6b0553 Fixing up arguments for keystore. 2018-02-12 13:33:22 -08:00
jMyles f5c19cdfba k_frag, not key_frag! 2018-02-12 13:33:12 -08:00
jMyles 25477c1204 Sending Policy in a MessageKit. 2018-02-12 13:12:31 -08:00
jMyles b5bf5557a2 Reinstituing Keystore logic. 2018-02-12 13:09:18 -08:00
jMyles 2184933c97 Commenting out encrypting keys from the Keystore for the moment. 2018-02-12 13:08:58 -08:00
jMyles 63b2a94c9b equality for signatures. 2018-02-12 13:08:09 -08:00
jMyles 83344553d9 Clarifying that we need (and use) the enc - not sig - public key for encrypting. 2018-02-12 13:00:14 -08:00
jMyles 0e57e44c03 We might initially construct a MessageKit without some of the components. 2018-02-12 12:59:52 -08:00
jMyles e17e10b452 Reintroducing UNKNOWN_KFRAG. 2018-02-12 12:59:39 -08:00
jMyles e55dda7ace Seal needs a fingerprint too. 2018-02-12 12:59:31 -08:00
jMyles cf7b0053fd We don't represent a public key as a tuple anymore. 2018-02-12 12:59:18 -08:00
jMyles ee93749c20 New Policy logic to work with MessageKit and Keystore. Needs more cleanup. 2018-02-12 12:58:38 -08:00
jMyles 7551d79fd6 Constructing message_kit with Signature - we'll do this a better way soon. 2018-02-12 12:58:10 -08:00
Tux 6aeef2f6ec
Merge pull request #9 from jMyles/rm-crypto
Kits, splitters, new encrypt and decrypt, more
2018-02-11 02:15:25 -07:00
jMyles 5804ffdc95 New splitters for Policy. 2018-02-11 01:06:21 -08:00
jMyles f600f7f183 Formatting and style. 2018-02-11 01:05:58 -08:00
jMyles 570f169038 Splitter with kwargs. 2018-02-11 01:05:36 -08:00
jMyles 94fb768914 I had stashed some of Tux's work when I merged; adding that back in. 2018-02-11 01:04:50 -08:00
jMyles ccf3cb1f2d ByteStringSplitter can now take kwargs and can be added to other splitters. 2018-02-11 01:03:36 -08:00
jMyles 505c3a7115 Formatting and organization for ByteStringSplitter. 2018-02-11 01:02:45 -08:00
jMyles 9cd7bc083c Signature concat needs to be cummatative. 2018-02-11 01:00:39 -08:00
jMyles fba93f9b07 ...and that's the story of how pyumbral and MessageKits destroyed two perfectly awful functions. 2018-02-11 00:59:14 -08:00
jMyles d2a5218cc2 More touchups to powers. 2018-02-11 00:58:06 -08:00
jMyles b63e749819 Characters can encrypt for others without needing an encrypting power. 2018-02-11 00:56:33 -08:00
jMyles 69137b07d5 Some organization. 2018-02-11 00:55:22 -08:00
jMyles b92b5158e1 Serialize MessageKit. 2018-02-11 00:54:36 -08:00
jMyles 50043f68a9 Using splitters in kits! 2018-02-11 00:54:24 -08:00
jMyles 6e5a6cfbaa Putting some prefab splitters in splitters.py. 2018-02-11 00:54:15 -08:00
jMyles 0c32deab98 Splitting a MessageKit to get Policy. 2018-02-11 00:52:25 -08:00
jMyles f807113d7d verify_from now takes a MessageKit. 2018-02-11 00:52:10 -08:00
jMyles 5358916ea5 encrypt_for now takes plaintext, returns a MessageKit. 2018-02-11 00:51:21 -08:00
jMyles a3a05d9de0 powers_and_keys can now take UmbralPublicKeys. 2018-02-11 00:50:22 -08:00
tuxxy 1c5c1ab7ad Remove npre from policy.models 2018-02-10 22:11:37 -07:00
tuxxy 542e6b6a5c Fix syntax 2018-02-10 22:08:27 -07:00
jMyles 0c47c00d69 @tuxxy merged my Pull Request, then pushed his history to thunderdome. This commit merges those histories. 2018-02-10 20:39:30 -08:00
tuxxy 2fc5596d5b Add tests for sqlite keystore 2018-02-10 21:26:56 -07:00
jMyles d91426e0e8 Formatting and style changes. 2018-02-10 19:39:03 -08:00
jMyles fee2b29836 Red lines through PFrag. 2018-02-10 19:28:34 -08:00
jMyles 438ecf2e29 New splitters for new hashes. 2018-02-10 19:26:54 -08:00
jMyles 044c636a77 New hash digest length for dht bytestring splitter. 2018-02-10 19:24:27 -08:00
jMyles 84e6f7d410 Signatures returned from keypairs. 2018-02-10 19:12:45 -08:00
jMyles 625ec75b0f Better error if message_types aren't compliant with BytestringSplitter. 2018-02-10 19:09:29 -08:00
jMyles 440e3e13b6 Signature r+s concatenation serialization. 2018-02-10 19:09:29 -08:00
jMyles 24bbac9ae1 Unlike PublicKey, UmbralPublicKey can't be init'd with bytes. 2018-02-10 19:09:29 -08:00
jMyles 9ce9a8a49b Bytes de/serialization for Signature has changed a bit now that we're using cryptography.io.
For a question about this method of serialization r and s, see: https://stackoverflow.com/questions/48726642/whats-the-proper-way-to-get-a-fixed-length-bytes-representation-of-an-ecdsa-sig/48727351#48727351
2018-02-10 19:09:29 -08:00
jMyles ddd0d69ac8 We make a Signature our of r and s now - it'll be 64 bytes with secp256k1. 2018-02-10 19:09:29 -08:00
jMyles 29aeb86bc5 We don't hash messages in advance anymore; cryptography.io does it. 2018-02-10 19:09:29 -08:00
jMyles c7e13cb861 KeyPair gets init'd with bytes. 2018-02-10 19:09:29 -08:00
jMyles 8a6ac628bb Use the sig_keypair's sign method. 2018-02-10 19:09:29 -08:00
jMyles ad3af0fe8f Gotta actually grab the public key. 2018-02-10 19:09:29 -08:00
jMyles 8ecb791823 Moved mutable out of params list. 2018-02-10 19:09:29 -08:00
jMyles 817277623f Two hash digest lengths are better than one! 2018-02-10 19:09:29 -08:00
jMyles adf2eee2e8 API no longer returns Signature. 2018-02-10 19:09:29 -08:00
jMyles 1eef746f7c Alice implements new kfrag generation method. 2018-02-10 19:09:29 -08:00
jMyles 44d9820f7b Alice now generates KFrags with umbral. Woo! 2018-02-10 19:09:28 -08:00
tuxxy 893ae8d24c Implement Keystore with new models 2018-02-10 17:01:11 -07:00
tuxxy b894ca6d18 Implement get_fingerprint on Keypair 2018-02-10 15:43:00 -07:00
tuxxy 03ffe8c9cd Merge branch 'rm-crypto' of github.com:tuxxy/nucypher-kms into rm-crypto 2018-02-10 15:24:55 -07:00
tuxxy 439a80444b Add keystore models 2018-02-10 15:24:42 -07:00
jMyles 65940dd0fe Preparing to use UmbralPublicKey. 2018-02-09 20:44:16 -08:00
jMyles acc31b7757 Using UmbralPrivate key for splitting in protocols. 2018-02-09 20:38:10 -08:00
jMyles 9627dbca0e Using MessageKit for decrypting. 2018-02-09 20:37:55 -08:00
jMyles 3a1fcc349d Adding public key (assuming secp256k1) to constants 2018-02-09 20:36:15 -08:00
tuxxy 5b73db801e PEP8 changes to characters 2018-02-09 21:15:50 -07:00
tuxxy 7f7c1207ef Set HASH_DIGEST_LENGTH to 64 2018-02-09 19:52:43 -07:00
tuxxy a761466d38 Implement Umbral in Keypairs 2018-02-09 19:44:20 -07:00
tuxxy 39b70336d3 Add what I got so far -- Keypair 2018-02-09 14:25:52 -07:00
jMyles 5741702891 Fixed NameError for Signature.__bytes__. 2018-02-09 13:03:52 -08:00
jMyles 48bfbacd5d KeypairBasedPower.__init__ - @tuxxy is perhaps going to move this down to KeyPair. 2018-02-09 13:03:10 -08:00
tuxxy b694877f70 Implement ecdsa_sign in API and call it in signature 2018-02-09 13:29:04 -07:00
tuxxy ba2200487f Add what I got - KeypairBasedPower 2018-02-09 12:27:12 -07:00
tuxxy 1cafba8e34 Use 'ECDSA Signature' on __repr___ 2018-02-09 11:04:44 -07:00
tuxxy 61eb1a11f4 Merge branch 'rm-crypto' of github.com:tuxxy/nucypher-kms into rm-crypto 2018-02-09 03:44:30 -07:00
tuxxy 9eb303506d Use PyUmbral keys in Signature 2018-02-09 03:44:15 -07:00
jMyles fd8ba6670d SigningKeypair implements new ECDSA sign function. 2018-02-09 02:34:26 -08:00
jMyles c11e9c77f8 New ECDSA sign function. 2018-02-09 02:34:25 -08:00
tuxxy 75412b9a3d Remove deprecated files 2018-02-08 14:52:17 -07:00
jMyles 50aca7d66f Reflecting new location for fragments. 2018-02-07 16:22:28 -08:00
tuxxy f1a6689b7a Use umbral.KFrag and KFRAG_LENGTH for set_policy 2018-02-07 03:31:27 -07:00
jMyles 6d2c9e3d7b Reflecting deprecated crypto modules. 2018-02-07 02:16:45 -08:00
jMyles 0d964ca080 Removing various imports of the ole' fragments module. 2018-02-07 02:16:44 -08:00
tuxxy a55149fa06 Add cryptographic bytestring length constants from PyUmbral 2018-02-07 01:19:51 -07:00
tuxxy e84b772af5 Remove PRE declaration 2018-02-07 00:14:30 -07:00
tuxxy da70c11b06 Delete old code that will be replaced with pyUmbral 2018-02-06 22:07:08 -07:00
tuxxy 553ae20f09 Merge branch 'master' of github.com:nucypher/nucypher-kms 2018-02-06 18:36:58 -07:00
jMyles c6d050aca7 Making explicit which address and port are for Ursula's DHT interface. 2018-02-06 17:16:21 -08:00
jMyles cc80a065e0 Character.from_public_keys now takes a list of tuples. 2018-02-06 17:15:53 -08:00
jMyles 12f7990a09 Alice script properly sends a Contract and then, subsequently, sends a KFrag. 2018-02-06 03:08:23 -08:00
jMyles 1ff8d51515 Better doctstring for Policy. And something something agreement. 2018-02-05 23:40:21 -08:00
jMyles bdf738aef9 Serialization for Contract. 2018-02-05 23:30:07 -08:00
jMyles e263558218 Allow BytestringSplitter to use from_bytes if that method is provided. 2018-02-05 23:30:07 -08:00
jMyles 63d7990aa6 Contract Consideration is now a REST activity. 2018-02-05 23:30:07 -08:00
jMyles de3d9e6c01 Create an Ursula from a REST URL. Why not? 2018-02-05 23:30:01 -08:00
jMyles 672f796965 Some style tweaks for Character. 2018-02-05 23:08:55 -08:00
jMyles 543465b99d Implementing from_public_keys in various places. 2018-02-05 11:26:50 -08:00
jMyles 3db71115f6 Characters can now be created from either a signing or encryption key. Fixes #156. 2018-02-05 11:25:17 -08:00
jMyles b482c7a1be Only tell PowerUps to generate keys if the Character is_me. 2018-02-05 11:05:28 -08:00
jMyles 81c534041f Tracking both REST and DHT info on Ursula. 2018-02-04 23:39:40 -08:00
tuxxy 1ce78759c1
Merge branch 'master' of github.com:nucypher/nucypher-kms 2017-12-22 22:41:19 -07:00
jMyles 83aae67c7b Making Contract details explicit. 2017-12-15 21:50:36 -08:00
jMyles 6819456f43 Tearing out remainder of ChallengePack 2017-12-15 21:50:09 -08:00
jMyles 472d2f0a94 Way better docstring for Policy. 2017-12-15 21:49:45 -08:00
jMyles b30638cbf9 Doing this all on Ursula now. 2017-12-15 21:49:27 -08:00
jMyles 14071b5b9c Stepping up docstring. 2017-12-15 21:49:15 -08:00
jMyles cc7483436d Moving these splitters outta here. 2017-12-15 21:49:01 -08:00
jMyles 319b1f17a5 Instead of saving the contract in memory, saving a dict with details in preparation for a legit data store. See #127. 2017-12-15 21:48:18 -08:00
jMyles 8e0f9fb203 Ursula reconstructing contract from mock saved data. 2017-12-15 21:47:52 -08:00
jMyles 0bb62224ef With PolicyGroup gone, there's no need for these nagging managers. 2017-12-15 21:47:02 -08:00
jMyles a224487ecf Exception to raise when suspicious activity is detected and there's no other obvious recourse. 2017-12-15 21:46:14 -08:00
jMyles 9e32c72cc1 Cleaning up some imports and signatures. 2017-12-15 11:13:08 -08:00
jMyles 100e7478b6 Some PolicyGroup methods will now live on Policy. 2017-12-14 21:20:24 -08:00
jMyles 3ed0495d3c _accepted_contracts is a more accurate name than _active_contracts, and also opens up some other logic. 2017-12-14 21:19:59 -08:00
jMyles f0fe1012b9 Massive redlining of PolicyGroup. 2017-12-14 21:19:23 -08:00
jMyles 45ffae7ea4 This was an hrac all along - it was never meant to be called "pfrag" except as a quick experiment. 2017-12-14 21:18:50 -08:00
jMyles 87d25e4ce3 Pushing logic to match KFrags with Contracts down into Policy. 2017-12-14 21:18:25 -08:00
jMyles 5a96e23d40 Logic to find an unassigned kFrag and assign it to a Contract. 2017-12-14 20:36:08 -08:00
jMyles 4cf3d8aac8 Much clearer logic for finding Ursulas. 2017-12-14 20:35:56 -08:00
jMyles 5066cd1ad7 Instead of taking a single Contract, find_ursulas now makes the number of Contracts needed to offer one to each Ursula. 2017-12-14 20:35:22 -08:00
jMyles 7dd0953fa4 Alice can draw up a Contract. 2017-12-14 20:35:05 -08:00
jMyles d85776d80d Ursula is now on Contract, now Policy. 2017-12-14 20:34:47 -08:00
jMyles 5d70de739d More logic updates from Contract. 2017-12-14 20:34:30 -08:00
jMyles ef4cf13dc6 Special error for the scenario in which we have already contacted *too many* Ursulas. 2017-12-14 20:33:56 -08:00
jMyles 5ba1435c21 Moving TreasureMap to Policy (big one! :-) ) 2017-12-14 20:33:41 -08:00
jMyles 8be2c5cf4c Contract now gets updated wit REST payload instead of created anew (because Ursula has already saved it). 2017-12-14 20:33:12 -08:00
jMyles 775da4c670 Contract is identified by hrac. 2017-12-14 20:32:59 -08:00
jMyles 4927dec9e5 Ursula saves contract (although we'll want to do this in a datastore - see #127) 2017-12-14 20:32:22 -08:00
jMyles 567a9734fe Ursula saves KFrag from new Contract class. 2017-12-14 20:32:09 -08:00
jMyles 4e25a0ac04 Much better grant logic. 2017-12-14 20:31:54 -08:00
jMyles 91d46aae6a TODOs around Ursula's Contract storage. 2017-12-14 16:53:44 -08:00
jMyles 2869e1e5e1 Contract takes an Alice directly now, rather than a Policy. 2017-12-14 16:53:20 -08:00
jMyles 2667d0c131 Rolling the remaining PolicyGroup / PolicyOffer details into Contract. 2017-12-14 16:52:58 -08:00
jMyles 0a9002893e For now, Ursula stores Contracts in a dict. 2017-12-14 16:52:36 -08:00
jMyles 0fd71bf07b Enact logic to reflect new Contract. 2017-12-14 12:50:12 -08:00
jMyles fdce4e089c HRAC logic moved to Policy. PolicyGroup is losing weight! :-) 2017-12-14 12:49:50 -08:00
jMyles 4bcec28347 Moving from_ursula (ie, "other end of the wire" logic) to Contract. 2017-12-14 12:49:14 -08:00
jMyles 346883524a Ursula reconstructs the Contract at the other end of the wire. 2017-12-14 12:46:36 -08:00
jMyles 1c677efb6a Moving the rest of the enact logic to Policy. 2017-12-14 12:15:36 -08:00
jMyles 54d593f536 Rethinking PolicyOffer more broadly - it's now a Contract, which is able to formulate its own payload. 2017-12-14 12:15:10 -08:00
jMyles 021f7a25d5 .enact() for Policy 2017-12-14 12:14:37 -08:00
jMyles f68bd91510 Policy ID is immaterial now. Closes #38 wontfix. 2017-12-14 11:40:46 -08:00
jMyles f5abf099af New find_n_ursulas method for Policy. 2017-12-14 11:40:23 -08:00
jMyles 56b2fab5bc Moving activate to PolicyOffer. 2017-12-14 11:40:09 -08:00
jMyles 5638af4e9e Eh, this exception has lived in the wrong place its whole life. 2017-12-14 11:39:38 -08:00
jMyles 1fb92890bb Making KFrag hashable; preparing to use it as a key in `_active_ursulas`. 2017-12-14 11:39:17 -08:00
jMyles c4135b520f Alice passes uri and kFrags to make a Policy. 2017-12-14 11:22:20 -08:00
jMyles 847a0e0e99 Policy now takes multiple kFrags and a URI as arguments. 2017-12-14 11:22:00 -08:00
jMyles f5a0db8603 Moving craft_offer to Policy. 2017-12-14 11:21:37 -08:00
jMyles 7f7139e24f Moving 'n' to Policy. 2017-12-14 11:21:16 -08:00
jMyles 8435ddccdf Alice now makes a Policy instead of a PolicyGroup. 2017-12-14 11:20:57 -08:00
jMyles 899049c3d7 Moved pFrag down to Policy; pFrag stand-in for PolicyGroup. 2017-12-14 10:49:15 -08:00
jMyles fcc3636934 Found a pFrag that escaped refactor. 2017-12-13 20:09:34 -08:00
jMyles ac10e6a3da Merge commit for various Policy and testing Work after PRs are merged. 2017-12-13 10:41:55 -08:00
jMyles 267647a07b Don't need TreasureMap setter anymore. 2017-12-13 10:32:44 -08:00
jMyles ff19d7f276 Payload has always incorrectly used the encrypted TreasureMap instead of ChallengePack - we didn't notice because we aren't doing challenges yet. 2017-12-13 10:32:10 -08:00
jMyles 38e692a526 Making it easier to get an hrac from outside PolicyGroup. 2017-12-13 10:31:31 -08:00
jMyles 6554df9c03 hash convenience method can just be static. 2017-12-13 10:31:15 -08:00
jMyles 9541aa8519 Bob can reconstitute a PolicyGroup before he has the PFrag; nothing wrong with that. 2017-12-13 10:30:47 -08:00
jMyles af969c3ff7 Bob now gets a TreasureMap from just an Alice and URI (not a PolicyGroup). 2017-12-13 10:30:08 -08:00
jMyles 44438e6a50 Moving publish_treasure_map down to PolicyGroup. 2017-12-13 10:29:21 -08:00
jMyles 451095326f Adding __len__ for TreausureMap (kinda surprised we got by without it until now). 2017-12-11 17:03:07 -08:00
jMyles df013d6a00 More replacements of PolicyGroup for the simple hrac. 2017-12-11 17:02:45 -08:00
jMyles cbae3d666e Lookup TreasureMap with provided hrac. It's a good idea to test this, but it's untested as yet. 2017-12-11 17:00:36 -08:00
jMyles 673620e721 Bob doesn't need a PolicyGroup to generate work orders; an hrac will do. 2017-12-11 16:58:40 -08:00
jMyles 588ee82d8e Store TreasureMap when finding from DHT. 2017-12-11 16:56:00 -08:00
jMyles 57b4450d59 Look in own TreasureMaps when following. 2017-12-11 16:55:35 -08:00
jMyles a5fbc5c38d Bob will store TreasureMaps now. 2017-12-11 16:55:00 -08:00
jMyles f8d67c83d6 BaseClass for NetworkyStuff will just return NotImplemented when asked to find a competitive rate. 2017-12-11 14:44:32 -08:00