From f233c8fd84746651ede9737751ce0a066e7de70b Mon Sep 17 00:00:00 2001 From: Masato Imai Date: Sat, 17 Sep 2022 12:31:37 +0900 Subject: [PATCH] . --- add_poll.gpsl | 38 ++++++++++++++++++++++++++++++++++++++ data/poll.gvalue | 1 - data/polls.gvalue | 2 +- data/result | 1 + data/user.gvalue | 1 - data/users.gvalue | 2 +- init.gpsl | 18 ++++++++++++++++++ sum.gpsl | 30 ++++++++++++++++++++++++++++++ 8 files changed, 89 insertions(+), 4 deletions(-) create mode 100644 add_poll.gpsl create mode 100644 data/result create mode 100644 init.gpsl create mode 100644 sum.gpsl diff --git a/add_poll.gpsl b/add_poll.gpsl new file mode 100644 index 0000000..92e394e --- /dev/null +++ b/add_poll.gpsl @@ -0,0 +1,38 @@ +fn add_poll() { + let user = read_value("./data/user.gvalue"); + let poll = read_value("./data/poll.gvalue"); + write("./data/user.gvalue", ""); + write("./data/poll.gvalue", ""); + + let users = read_value("./data/users.gvalue"); + let polls = read_value("./data/polls.gvalue"); + + if (users[0] == "") { + users[0] = user; + let tmp_e: Vec = vec(encrypt(0)); + tmp_e[0] = encrypt(poll[0]); + + for (let i = 1; i < length(poll); i += 1) { + tmp_e = push(tmp_e, encrypt(poll[i])); + } + + polls[0] = tmp_e; + } else { + users = push(users, user); + let tmp_e: Vec = vec(encrypt(0)); + tmp_e[0] = encrypt(poll[0]); + + for (let i = 1; i < length(poll); i += 1) { + tmp_e = push(tmp_e, encrypt(poll[i])); + } + + polls = push(polls, tmp_e); + } + + write_value("./data/users.gvalue", users); + write_value("./data/polls.gvalue", polls); +} + +fn main() { + add_poll(); +} diff --git a/data/poll.gvalue b/data/poll.gvalue index a60fcf8..e69de29 100644 --- a/data/poll.gvalue +++ b/data/poll.gvalue @@ -1 +0,0 @@ -{"Vec":{"value":[{"Number":{"value":0}},{"Number":{"value":1}},{"Number":{"value":0}},{"Number":{"value":0}}],"gpsl_type":{"type_str":"Vec","child":[{"type_str":"num","child":[]}]}}} \ No newline at end of file diff --git a/data/polls.gvalue b/data/polls.gvalue index bdfdbf4..22375f0 100644 --- a/data/polls.gvalue +++ b/data/polls.gvalue @@ -1 +1 @@ -{"Vec":{"value":[{"Vec":{"value":[{"PureEncrypted":{"value":{"data":{"Point":{"x":{"value":"0x3e8c03524b5de09f90d109f8b4087d5fa4b287d2ae978acaf533a10174ce7963","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0x1e4f0a9f1e72445d8740f1e1e0b42e5238701ca2e86f2ddd3cd0f6293149b6f1","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}},"rp":{"Point":{"x":{"value":"0x13fee62dff141fa73a8594fcfbee9cf6e975c10255a58ca5cb60603ecc9e59c","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0xf937df2c66221804baf1800ade14061d357436f0272e094ebdc2e8b1884dada7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}}}}}],"gpsl_type":{"type_str":"Vec","child":[{"type_str":"eep","child":[]}]}}}],"gpsl_type":{"type_str":"Vec","child":[{"type_str":"Vec","child":[{"type_str":"eep","child":[]}]}]}}} \ No newline at end of file +{"Vec":{"value":[{"Vec":{"value":[{"PureEncrypted":{"value":{"data":{"Point":{"x":{"value":"0x8e78466ccc1d16a9fb0346959889fb4477f9ba4832c783544b267f7e75f8d7ae","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0xac0d4caade9effb64f6e3bd26270757ec04a72426b960d0e9f830ef3c641e25d","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}},"rp":{"Point":{"x":{"value":"0xa8dcf9b0ce811fb01a4921fbf6f9ca0b9f68cd63570ee6d9d7079a89f29a43ee","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0xa139e49ccbafc6bffd46950b9a22a64360c27f57d841b2ec0e7157c70fbbfecb","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}}}}},{"PureEncrypted":{"value":{"data":{"Point":{"x":{"value":"0x41afaa711246484c5b792e261c17460b41bddc27b900ab84bd2129a1977573be","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0xfa98635031a93778ae5a9cd9b8c1cfc9921ce538a3d806c4cdffc025ec94295f","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}},"rp":{"Point":{"x":{"value":"0xf104b84e29966f85371b18825848161b71374d8b51bfff7cc3f158f6c6dc6277","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0x6d25935b09f96bdb1349896e564c9601740dae8f314e376883a5355bae7be924","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}}}}},{"PureEncrypted":{"value":{"data":{"Point":{"x":{"value":"0x55683fc5bed331db347e1b54456eb2df39c3165d6f128c939f57ddc0da21bd31","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0x3872f25babad1d629f267e3e41a1e7f0364c75daaae326bbfdf8268d04b5a1fe","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}},"rp":{"Point":{"x":{"value":"0x812c0398640bd1f19b74d9411961905566d5c99b1657a4ab3e0539f9b344df2c","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0xb1ba57e72ef6b516a8a6efd5938934089ea218406d5742a72b2c24264f3d6f17","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}}}}},{"PureEncrypted":{"value":{"data":{"Point":{"x":{"value":"0xd6cab4a39733a368edd0331eef679d1a00de33995ae2bccdfb5a0d18ab0605e4","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0xa4c3fea904b478959aa86969c0b11af279680f2b0e4cdde32dadb1663049fad3","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}},"rp":{"Point":{"x":{"value":"0xb0dbbd266f24383ffa1f58bf8dab6b11d3bb694abee3ad5d6bc78228574ad2a","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0x6dd3eb97af2123208fccf7885ab71c4d1b22b1c02b48c6cfffb855518547f1f0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}}}}},{"PureEncrypted":{"value":{"data":{"Point":{"x":{"value":"0x4faaae5a311993aebe5052f503a27ae1cd406ccacfb224398a58fac0d364b53b","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0x9157af258e78e6b29d6cfb06c3097708a72c60e206e7b05c8168a04614d21d4a","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}},"rp":{"Point":{"x":{"value":"0x3c79c6ab1cda5064ec4ba321c5355ac8526eb4b00a3ab468430aadc332545cae","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0x8cf882e1a0f36c41ef3fb4662cad2cc01c68dffb2738e845e497d6ee1f08562e","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}}}}},{"PureEncrypted":{"value":{"data":{"Point":{"x":{"value":"0xb0272076264821caf58ccd1e9454f2117df008500694d57e7c4e178f21c6a47e","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0xb1ad87101e38e2e994307dc1b9eca1704a0f7ef48e07f2d6e2e4742e900065e2","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}},"rp":{"Point":{"x":{"value":"0x3db7d066f1216e477d5f0ed5fa7dc18504fa95b5739769e26a089f016c31f17c","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0x428351ed3567ef0b652735ba91a4c10ff3b2edbcda5f8293e02f7101415ffe1e","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}}}}},{"PureEncrypted":{"value":{"data":{"Point":{"x":{"value":"0x10c0bc4b535f907aa2fdd8899edeb0cbb32d2c74f0a726f1df61643a35c2a7fd","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0x3a394cbca1905967d204c28e59817eee5c34839300dfa5d5d1d7fd00f92d4a79","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}},"rp":{"Point":{"x":{"value":"0x45a73e4868a96cff156a8b14a469bdf9ac610be810cfdf447130addad515ead","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0x7b6bd8a0e144b0dd98c717ed74bfa602b2bf7e07b3326f0f64bdaf23ecfde399","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}}}}},{"PureEncrypted":{"value":{"data":{"Point":{"x":{"value":"0x3179bbfed1e6f6087c4f4e6368296f63f1e682ce0a7c619c7e10ae2ddd4e5060","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0xa677924d27c88df12483140e9f6194509f81b9be20bcc4bed3ce47e6d33b9947","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}},"rp":{"Point":{"x":{"value":"0x5e4bd467a1b86b1eba7a2f7309c7882ebf9739120ed961748628d7650619e6ec","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0x68376f6550b3714030fa117760cb85bda9b529dfe9bed1330a5b9b1d7d384ae","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}}}}},{"PureEncrypted":{"value":{"data":{"Point":{"x":{"value":"0x8b4f517cc3eb0a49849f6bba6670b8c2b96d8cb25479075a37befcb61f3f7a0f","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0xfccd4b0376ec0708d9f651c68793434fb7b4801e81ed6cc579dd2c63a1415a6f","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}},"rp":{"Point":{"x":{"value":"0xd3cbdc4cdebecffcbc7159aba5115ef486ea85cb5ba9143fe882dcf540b12bfe","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0x9e822b329c72329810c0dc8cd16064396ffa928fe3d6e6b72a56c9178a1b5d6c","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}}}}},{"PureEncrypted":{"value":{"data":{"Point":{"x":{"value":"0xe722583736f0c7ec351ad9efe2994c74c6d83e8e1bab1e64234409cdcd2e2d7e","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0x5f35504303bad98323d4a1cbea04cb24c684f51af0e836b141f30da26a4f1586","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}},"rp":{"Point":{"x":{"value":"0x8c30c7c9b90a355d9e34c1b5beae7f352b4bc5ff5c4a41b6486dbae7050c2e15","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0xff3c6c55873c4981c449137350afcebefb973a481442db020253a452589fd5fe","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}}}}},{"PureEncrypted":{"value":{"data":{"Point":{"x":{"value":"0xd4e10195418dcb8ab74cc02ea284f3f91554183d02d4498d27b4c9c5174e57fc","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0x38246c5714971661cc4defcd3b2815dbe85a8fd0f0944b192f7b443a57217819","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}},"rp":{"Point":{"x":{"value":"0x8fa7f9a24003715555f274e688bf5cd144454f83ffcdf1240a4a92818acd48a","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0x6d75c1630d17cdef3cdad4e08dadbcc4e45a085b51faea8c84947e560d71125f","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}}}}},{"PureEncrypted":{"value":{"data":{"Point":{"x":{"value":"0x294a0df432460ed65aaacfbbf1b90c97b2aa2eeda912eb5c0c663431ace75b03","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0x4ddf6ab2bc4f2168d1cc162f23877bf75feb96d19903ad0c2ff75df1eaf61023","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}},"rp":{"Point":{"x":{"value":"0x6e6ae3b6b09b3937bfcdcc689ce4e637a5881b2979237903bb37dbbf6b1c327a","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0x617565b3512d44f8a4dc54bc34ac9c722e10b01d24ae9ddc55eb81469631ee6","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}}}}},{"PureEncrypted":{"value":{"data":{"Point":{"x":{"value":"0x61d5af9469c16bba6f2d1a7dad11da687553788e939182469f1e341378fdab01","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0x1fd440be85c223026d0b104837c1bfb644daa70f3cc604095dbece8a90cc0f9b","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}},"rp":{"Point":{"x":{"value":"0xd6ab1a60fad0d38751906129ad9bc26fb9b7d47559b6037a50193849060137b9","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0xba640b87197a93fc3490f535a3415d12a9d5249e03083bb0513c5770fcc56c51","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}}}}},{"PureEncrypted":{"value":{"data":{"Point":{"x":{"value":"0x6ecf767d35a930d383a97422da937cfa3455200eb55dc1a68285aaff06504b03","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0x96f3c0bf17a8ad3817be4a7310ba28b1c125b22916a46282bdc853680e1d5184","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}},"rp":{"Point":{"x":{"value":"0x3156ca684bcd786e4d64c30140bcfdbca972f188946c26233db872a72c64a65a","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0xcf74510952817ab48cd003df4e0c383b7bfe8e182c70162519e0d5d7180c41a1","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}}}}},{"PureEncrypted":{"value":{"data":{"Point":{"x":{"value":"0x2a59cbfd268220bdf34287e0cded086456727265904bf9bd62eeef601fab8b72","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0x62e61c92a4a59e23e93cc436b3e4a4ec9955c45be709c581b0f3a017f39e86a6","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}},"rp":{"Point":{"x":{"value":"0xf7bd8ce8c11722d14b7fe494fe97147a93765fb1e561fa617afb47222e178e64","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"y":{"value":"0xc877a30ed690a4f5a3e2d82b89eddb0136805ba215aaea6b1452dac8d2d9b680","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"a":{"value":"0x0","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"},"b":{"value":"0x7","p":"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"}}}}}}],"gpsl_type":{"type_str":"Vec","child":[{"type_str":"eep","child":[]}]}}}],"gpsl_type":{"type_str":"Vec","child":[{"type_str":"Vec","child":[{"type_str":"eep","child":[]}]}]}}} \ No newline at end of file diff --git a/data/result b/data/result new file mode 100644 index 0000000..956d810 --- /dev/null +++ b/data/result @@ -0,0 +1 @@ +0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 \ No newline at end of file diff --git a/data/user.gvalue b/data/user.gvalue index fef8040..e69de29 100644 --- a/data/user.gvalue +++ b/data/user.gvalue @@ -1 +0,0 @@ -{"Text":{"value":"3d4"}} \ No newline at end of file diff --git a/data/users.gvalue b/data/users.gvalue index 0c55d46..364c08d 100644 --- a/data/users.gvalue +++ b/data/users.gvalue @@ -1 +1 @@ -{"Vec":{"value":[{"Text":{"value":""}}],"gpsl_type":{"type_str":"Vec","child":[{"type_str":"String","child":[]}]}}} \ No newline at end of file +{"Vec":{"value":[{"Text":{"value":"3d4"}}],"gpsl_type":{"type_str":"Vec","child":[{"type_str":"String","child":[]}]}}} \ No newline at end of file diff --git a/init.gpsl b/init.gpsl new file mode 100644 index 0000000..017dd7f --- /dev/null +++ b/init.gpsl @@ -0,0 +1,18 @@ +fn init_gvalue() { + let users: Vec = vec(""); + let tmp: Vec = vec(encrypt(0)); + let polls: Vec> = vec(tmp); + + write_value("./data/users.gvalue", users); + write_value("./data/polls.gvalue", polls); + + let user = "3d4"; + let poll: Vec = vec(0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1); + + write_value("./data/user.gvalue", user); + write_value("./data/poll.gvalue", poll); +} + +fn main() { + init_gvalue(); +} diff --git a/sum.gpsl b/sum.gpsl new file mode 100644 index 0000000..6e8cbec --- /dev/null +++ b/sum.gpsl @@ -0,0 +1,30 @@ +#[server(ip = "172.25.5.189:8080")] +fn sum_polls(users: Vec, polls: Vec>) { + let n = length(users); + let result: Vec = polls[0]; + for(let i = 1; i < n; i += 1) { + println(polls[i]); + let c = length(polls[i]); + for (let j = 0; j < c; j += 1) { + let p = polls[i]; + result[j] = result[j] + p[j]; + } + } + + return result; +} + +fn main() { + let polls = read_value("./data/polls.gvalue"); + let users = read_value("./data/users.gvalue"); + let result = sum_polls(users, polls); + let n = length(result); + + let r = ""; + + for (let i = 0; i < n; i += 1) { + r = r + decrypt(result[i]) + " "; + } + println(r); + write("./data/result", r); +}