[{"data":1,"prerenderedAt":179},["ShallowReactive",2],{"project-19214333":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":33,"aspects":34,"strip":40,"post_text":41,"what":42,"said":72,"maker_in_thread":118,"shape":125,"grid":129,"attempts":142,"same_week":143,"maker_shows":171,"maker_hidden":172,"reader_version":173,"card":174},"19214333","Saltshaker-Crypto","Saltshaker-Crypto, NPM to Sign, Verify, Encrypt and Decrypt with Nacl","title","Show HN: Saltshaker-Crypto, NPM to Sign, Verify, Encrypt and Decrypt with Nacl","https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fsaltshaker-crypto","npmjs.com","rasengan",1550720438,2019,20,7,1193,2195,55,"shown","security_privacy","encryption library","library",[24,25,26,27,28],"nacl","tweetnacl","encryption","javascript","npm","roasted",-0.5,{"positive":32,"neutral":32,"mixed":32,"critical":33},0,5,{"execution":35,"privacy":37,"idea":39},{"positive":32,"critical":36},1,{"positive":32,"critical":38},3,{"positive":32,"critical":36},[36,36,36,32,36,32,36],null,{"problem":43,"audience":50,"pricing":41,"motivation":55,"time_to_build":41,"stack":59,"openness":71,"stage":71,"team_size":71},{"value":44,"source":45,"evidence":46},"Makes NaCl crypto (sign, verify, encrypt, decrypt) easier to use than raw tweetnacl.js","maker",[47],{"id":48,"by":11,"text":49},"19217875","Hi tptacek, You're absolutely right. I'm revisiting the AES. Thaks for pointing it out. As for the rest, this is absolutely a wrapper around it -- working with tweetnacl.js…",{"value":51,"source":52,"evidence":53},"JavaScript developers using NaCl","inferred",[54],{"id":48,"by":11,"text":49},{"value":56,"source":45,"evidence":57},"Make tweetnacl.js easier for the maker and others to use",[58],{"id":48,"by":11,"text":49},[60,67],{"value":61,"source":52,"evidence":62},"JavaScript",[63],{"id":64,"by":65,"text":66},"19214725","tptacek","Help me understand. You've written a small Javascript wrapper around 'dchest's Javascript port of tweetnacl, and then added to it the ability to insecurely encrypt and decrypt…",{"value":68,"source":45,"evidence":69},"tweetnacl-js",[70],{"id":48,"by":11,"text":49},"unknown",{"praise":73,"objections":82,"requests":99,"questions":107,"alternatives":113},[74],{"value":75,"source":76,"evidence":77},"tweetnacl-js is a well-regarded, security-audited library","commenter",[78],{"id":79,"by":80,"text":81},"19214905","jitl","Seems like the right library to post is https:\u002F\u002Fgithub.com\u002Fdchest\u002Ftweetnacl-js which actually has been security audited",[83,95],{"value":84,"source":76,"evidence":85},"Included unauthenticated AES-CBC encryption, which is insecure and has padding oracle risks",[86,87,91],{"id":64,"by":65,"text":66},{"id":88,"by":89,"text":90},"19214826","jszymborski","It is really strange that they added another library to do unauthenticated AES when nacl has a symmetric AEAD mode...",{"id":92,"by":93,"text":94},"19215171","stingraycharles","Wasn’t use of CBC strongly discouraged because it allowed for padding oracles ?",{"value":96,"source":76,"evidence":97},"Wrapping a library adds little value over using tweetnacl directly",[98],{"id":64,"by":65,"text":66},[100],{"value":101,"source":76,"evidence":102},"Remove the AES-CBC code and use NaCl's AEAD mode instead",[103,104],{"id":88,"by":89,"text":90},{"id":105,"by":65,"text":106},"19218218","Revisit the AES by removing the AES.",[108],{"value":109,"source":76,"evidence":110},"Why add unauthenticated AES alongside NaCl",[111,112],{"id":64,"by":65,"text":66},{"id":88,"by":89,"text":90},[114],{"value":115,"source":76,"evidence":116},"tweetnacl-js (dchest)",[117],{"id":79,"by":80,"text":81},{"comments":119,"answered":36,"key":120},2,[121,122],{"id":48,"text":49},{"id":123,"text":124},"19221064","This has been completed. Thank you.",{"commenters":33,"max_depth":126,"maker_replies":119,"first_comment_mins":127,"lifespan_hours":128},4,92,19,[130,132,134,135,137,139,140],[64,32,36,131,65,32],"project\u002Fcritical\u002Fexecution",[88,32,36,133,89,32],"project\u002Fcritical\u002Fprivacy",[92,32,36,133,93,32],[48,32,32,136,11,36],"maker\u002Fneutral\u002Fprivacy",[105,32,36,138,65,32],"maker\u002Fcritical\u002Fprivacy",[123,32,32,136,11,36],[79,36,36,141,80,32],"project\u002Fcritical\u002Fidea",[],[144,149,154,158,162,166],{"id":145,"name":146,"points":147,"category":148},"19248723","subsync",583,"dev_tools",{"id":150,"name":151,"points":152,"category":153},"19254828","Zero",513,"infrastructure",{"id":155,"name":156,"points":157,"category":148},"19216428","ICONSVG",227,{"id":159,"name":160,"points":161,"category":148},"19224141","Material Kit",193,{"id":163,"name":164,"points":165,"category":148},"19252276","Bullet",189,{"id":167,"name":168,"points":169,"category":170},"19257241","Hack Club Bank",141,"web_saas",9,false,"v2",{"id":175,"name":5,"line":6,"ai":172,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":30,"top":18,"kw":176,"maker":11,"domain":10,"tier":19,"attempts":32,"strip":177,"url":9,"mix":178,"praise":75,"objection":84,"sub":21},19214333,[24,25,26,27,28],"1110101",[32,32,32,33],1794036575059]