143 Commits

Author SHA1 Message Date
Ryan Orendorff
d7f58b39c1 Link to redeployed BFV docs (#398) 2025-05-07 23:27:35 +00:00
Ryan Orendorff
5ab19fb39c Update README (#397) 2025-05-07 17:24:09 +00:00
Ryan Orendorff
64913a934c Fix clippy warnings for Rust 1.83 (#385)
Co-authored-by: Rick Weber <rick@sunscreen.tech>
2024-12-05 20:01:04 -07:00
rickwebiii
bf99f2119e Rweber/bug fixes (#374)
Fix bug when users tried to reuse LWE ciphertexts across encryptions
2024-04-04 19:24:48 -04:00
Sam Tay
d2dfd45347 Misc updates from linked-docs (#364) 2024-03-01 01:47:49 +00:00
Sam Tay
cb20e8d030 Decrypt statements (#348) 2024-02-20 22:55:49 +00:00
Sam Tay
14ce61f5bf Diverge link methods (#346) 2024-02-13 16:24:01 +00:00
Sam Tay
e9125df70d Allow insecure params for tests (#344) 2024-02-11 16:03:00 -05:00
Sam Tay
ae42ab7199 Disallow repeating linked inputs (#345) 2024-02-11 16:01:58 -05:00
Sam Tay
b0df5e7c37 Expose symmetric encryptions (#343) 2024-02-11 15:14:57 +00:00
Sam Tay
c3cbf3781e Fix linked proof commitments (#342) 2024-02-07 17:46:00 -05:00
Sam Tay
a4f1cf6647 Link unsigned and rational FHE types (#341) 2024-02-05 14:22:10 -05:00
Sam Tay
18ea59b542 Proof linking (#339) 2024-02-03 20:01:24 +00:00
Sam Tay
94b7d0bd31 Generating SDLP for BFV statements (#337) 2024-01-17 18:22:47 +00:00
Ryan Orendorff
bc7cfb2ce2 Linked prove and verify functions (#328) 2023-10-25 16:20:20 -06:00
Ryan Orendorff
f341e89d02 Remove unused imports (#331) 2023-10-25 14:42:51 -06:00
Ryan Orendorff
85f68eb3ce SDLP and R1CS BP shared inputs (#324) 2023-10-18 16:16:46 -06:00
Ryan Orendorff
5d843565f7 Use same jit_prover ordering as specified in lib (#322) 2023-10-10 17:04:57 -06:00
Sam Tay
d9f64f4283 Bump all versions to 0.8.1 (#314) 2023-09-11 21:39:56 +00:00
Sam Tay
cbbe0bafbe Bump all versions to 0.8.0 (#305) 2023-08-22 19:40:54 -04:00
Ryan Orendorff
e90c11910c Add deterministic encryption (#303)
* Add deterministic encryption

* Add deterministic encryption flag, runtime

* Fix clippy

* Address PR comments
2023-08-21 17:57:43 -06:00
Ryan Orendorff
c0ef426ca0 Export components used in BFV, prove BFV is valid in SDLP (#285) 2023-08-10 12:13:29 -06:00
rickwebiii
641bf96bd4 Rweber/deps (#295)
Move all deps to [workspace.dependencies]
2023-08-04 17:23:06 -07:00
Ryan Orendorff
fc892c1727 Clippy fixes (#286) 2023-07-24 15:30:02 -06:00
Sam Tay
badb8f9c8f ZKP tweaks (#279)
* Export type alias for bulletproof backend fields

Also, keep bulletproof stuff namespaced to a `bulletproofs` module.

* Change sudoku to use pub over const

* Docs updates

* Rename / clean up sudoku

* Export `Proof` type

Basically required for being able to deserialize a proof

* Add zkp/serde workspace example

* Drive by cleaning

* Exports necessary for gadget impls

* Rename compute_inputs to compute_hidden_inputs

* Add prove/verify builders

* Export the builder types

This isnt strictly necessary but it would be weird for these to not show up in the cargo docs

* Clippy fix

* Add helper .compile() & .runtime() methods to fhe prog fns

I do wonder if these should be defined in a separate trait, just so that they don't live next to the more internal functions in documentation.

* Use new swag to simplify the front-facing api docs example

* Add some whitespace

* Switch to an extension trait

* Add an extension to ZkpProgramFn

* Take an owned ZkpBackend, rather than reference

Its typical to have the caller handle cloning, rather than taking a reference, requiring Clone impl, and forcing clone. Plus, as of now the only backend is a zero size null struct, so nothing to be gained by using a reference. It also just looks weird to always pass `&BulletproofsBackend::new()`

* Update sudoku to use new swag

* Target second attribute in multi attribute error

* Enforce ordering zkp inputs: constants,public,private

Honestly this feels a little unnatural to me. Might want to reverse: private, public, constant and then change all the prove/verify methods to that ordering

* Build whitelist example in CI

* Reorder constant->public->private to private->public->constant

* Fix trailing ws

* Fix example

* Make .runtime() more consistent with .compile()

* Get rid of some boilerplate impls

* Add custom zkp type example

* Move example run checks into example tests

Should speed up CI a bit

* Change whitelist -> allowlist
2023-07-18 15:15:51 -04:00
Sam Tay
036b782a69 Misc typos / Fix lib exports (#265)
* Misc doc fixes

* Fix sunscreen zkp exports

* Fix broken api doc reference
2023-06-27 19:43:20 -06:00
Sam Tay
aadde9d162 Offer a simpler API for runtime creation (#246)
* Offer a simpler API for runtime creation

* Update docs and examples to use `FheRuntime::new`
2023-06-06 18:56:46 -07:00
Sam Tay
66211f75b1 Fix 64-bit pointer assumptions (#243)
* Fix 64-bit pointer assumptions

* Appease clippy

* Bump proc-macro2

(Fixes wasm build)
2023-05-30 11:59:20 -07:00
rickwebiii
1089e00d1b Separate OpenCL shaders into multiple files (#239)
* Separate OpenCL shaders into multiple files
2023-05-12 17:06:53 -07:00
rickwebiii
6f713d6750 Rweber/zkp (#218)
Private tx range proof
2023-03-02 15:16:45 -08:00
rickwebiii
6604afbf95 ZKP array inputs (#217)
* ZKP array inputs
2023-03-01 13:33:14 -08:00
rickwebiii
ee830d6d70 Rweber/zkp (#215)
Bring logproofs into monorepo
2023-02-17 14:44:03 -08:00
rickwebiii
a8be112cb8 Randomness range proof in R1CS now correct (#208)
* Randomness range proof now correct
2023-01-25 11:06:13 -08:00
rickwebiii
61032735f8 Rweber/zkp (#205)
Can create pure R1CS BFV proof.
2023-01-20 13:38:04 -08:00
rickwebiii
64036ccaee Rweber/zkp (#197)
Plumb BackendField to NativeField for negative number support.
2023-01-04 11:38:18 -08:00
rickwebiii
d03207e67e Rweber/zkp (#196)
Add BFV playground, Polynomial addition
2022-12-19 12:00:23 -08:00
rickwebiii
18fb031953 Rweber/zkp (#195)
Can now use #[constant] and #[public] inputs
2022-12-09 16:21:34 -08:00
rickwebiii
c6056bf8d9 Rweber/zkp (#193)
Can use gadgets
2022-12-08 10:08:57 -08:00
rickwebiii
eac27d6ff5 Runtime now takes a ZKP backend (#192)
Runtime now takes a ZKP backend so we can JIT with NativeField
2022-12-03 11:31:43 -08:00
rickwebiii
2e5b7e834b Rweber/refactor (#190)
Refactor sunscreen_fhe_program to use types and functions in sunscreen_compiler_common
2022-11-30 18:02:45 -08:00
rickwebiii
72f00391ea Rweber/zkp (#188)
ZKP works E2E
2022-11-29 13:47:29 -08:00
rickwebiii
f79e2312af Rweber/clippy (#189)
Improve Errors (use thiserror and reduce their size). Fix clippy errors.
2022-11-29 13:18:45 -08:00
rickwebiii
3543b88387 Rweber/zkp (#187)
Refactor APIs to support ZKPs
2022-11-22 15:44:00 -08:00
rickwebiii
28ea71118f Rweber/zkp (#185)
Start ZKP compiler and refactor common code.
2022-11-15 12:43:04 -08:00
rickwebiii
390a27b1cd Refactor some code to be shared (#184)
* Refactor some code to be shared

* Kill warnings

* Regenerate launch.json

* Add documentation

* CR comments

* Fix doc issues

* cargo fmt

* CR comments

* CR comments

* Fix warning

* argh clippy
2022-11-11 15:56:09 -08:00
Sam Tay
e2e5da3f60 Manually fix the rest of the clippy warnings 2022-10-31 15:30:34 -07:00
Sam Tay
4b53103953 Auto fix clippy warnings 2022-10-31 15:30:34 -07:00
rickwebiii
0ca0052018 Rweber/release 0.7 (#178)
* 0.7 release

* Fix docs links
2022-10-17 14:56:27 -07:00
Dev43
a83c0d0f75 adds serialization/deserialization of private key (#174)
* adds serialization/deserialization of private key

* adds WithContext wrapper for SealSecretKey in PrivateKey
2022-09-23 15:29:19 -07:00
rickwebiii
0b86d5dfad Rweber/model (#161)
Add support for noise models in determining parameter selection
2022-07-22 15:56:39 +01:00