From 90b90d30910da74959b3920156decc6f676bf5c8 Mon Sep 17 00:00:00 2001 From: Ivan Mathy Date: Sun, 12 Jul 2020 14:40:06 -0500 Subject: [PATCH 01/93] Cleaned up scripts --- .../Icons/icons8-abacus.imageset/Contents.json | 16 ++++++++++++++++ .../icons8-abacus.imageset/icons8-abacus.pdf | Bin 0 -> 1802 bytes .../Contents.json | 2 +- .../icons8-camel.imageset/icons8-camel.pdf | Bin 0 -> 2447 bytes .../icons8-collapse.imageset/Contents.json | 2 +- .../icons8-collapse.pdf | Bin 1714 -> 0 bytes .../icons8-merge_horizontal.pdf | Bin 0 -> 1473 bytes .../icons8-color-wheel.imageset/Contents.json | 15 +++++++++++++++ .../icons8-color_mode.pdf | Bin 0 -> 1308 bytes .../icons8-colosseum.imageset/Contents.json | 16 ++++++++++++++++ .../icons8-colosseum.pdf | Bin 0 -> 1439 bytes .../icons8-command.imageset/Contents.json | 16 ++++++++++++++++ .../icons8-run_command.pdf | Bin 0 -> 1473 bytes .../Icons/icons8-flask.imageset/Contents.json | 16 ++++++++++++++++ .../icons8-flask.imageset/icons8-test_tube.pdf | Bin 0 -> 1234 bytes .../Contents.json | 2 +- .../icons8-kebab.imageset/icons8-kebab.pdf | Bin 0 -> 1797 bytes .../Icons/icons8-roman.imageset/Contents.json | 16 ++++++++++++++++ .../icons8-roman_helmet.pdf | Bin 0 -> 1588 bytes .../icons8-scissors.imageset/Contents.json | 16 ++++++++++++++++ .../icons8-scissors.pdf | Bin 0 -> 1418 bytes .../Contents.json | 2 +- .../icons8-snake.imageset/icons8-snake.pdf | Bin 0 -> 2165 bytes .../Contents.json | 16 ++++++++++++++++ .../icons8-alphabetical_sorting.pdf | Bin 0 -> 1295 bytes .../icons8-sort-numbers.imageset/Contents.json | 16 ++++++++++++++++ .../icons8-reversed_numerical_sorting.pdf | Bin 0 -> 1355 bytes .../Icons/icons8-trim.imageset/Trim.pdf | Bin 166260 -> 0 bytes .../Icons/icons8-trimend.imageset/TrimEnd.pdf | Bin 166043 -> 0 bytes .../icons8-trimstart.imageset/TrimStart.pdf | Bin 166119 -> 0 bytes Boop/Boop/scripts/AddSlashes.js | 2 +- Boop/Boop/scripts/CamelCase.js | 2 +- Boop/Boop/scripts/CountCharacters.js | 2 +- Boop/Boop/scripts/CountLines.js | 2 +- Boop/Boop/scripts/CountWords.js | 2 +- Boop/Boop/scripts/DateToTimestamp.js | 2 +- Boop/Boop/scripts/Deburr.js | 4 ++-- Boop/Boop/scripts/EvalJavascript.js | 6 +++--- Boop/Boop/scripts/JsonToQuery.js | 2 +- Boop/Boop/scripts/KebabCase.js | 2 +- Boop/Boop/scripts/MD5.js | 2 +- Boop/Boop/scripts/MarkdownQuote.js | 2 +- Boop/Boop/scripts/NatSort.js | 2 +- Boop/Boop/scripts/QueryToJson.js | 2 +- Boop/Boop/scripts/RemoveDuplicates.js | 2 +- Boop/Boop/scripts/RemoveSlashes.js | 2 +- Boop/Boop/scripts/ReverseLines.js | 2 +- Boop/Boop/scripts/Rot13.js | 4 ++-- Boop/Boop/scripts/ShuffleLines.js | 2 +- Boop/Boop/scripts/SnakeCase.js | 4 ++-- Boop/Boop/scripts/Sort.js | 2 +- Boop/Boop/scripts/StartCase.js | 4 ++-- Boop/Boop/scripts/SumAll.js | 4 ++-- Boop/Boop/scripts/Test.js | 2 +- Boop/Boop/scripts/Trim.js | 4 ++-- {Boop/Boop/scripts => Scripts}/JoinLines.js | 4 ++-- .../scripts => Scripts}/JoinLinesWithComma.js | 4 ++-- .../scripts => Scripts}/JoinLinesWithSpace.js | 4 ++-- {Boop/Boop/scripts => Scripts}/TrimEnd.js | 4 ++-- {Boop/Boop/scripts => Scripts}/TrimStart.js | 4 ++-- {Boop/Boop/scripts => Scripts}/WkbToWkt.js | 0 {Boop/Boop/scripts => Scripts}/WktToWkb.js | 0 Scripts/contrastingColor.js | 2 +- 63 files changed, 191 insertions(+), 48 deletions(-) create mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-abacus.imageset/Contents.json create mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-abacus.imageset/icons8-abacus.pdf rename Boop/Boop/Assets.xcassets/Icons/{icons8-trimstart.imageset => icons8-camel.imageset}/Contents.json (85%) create mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-camel.imageset/icons8-camel.pdf delete mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-collapse.imageset/icons8-collapse.pdf create mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-collapse.imageset/icons8-merge_horizontal.pdf create mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-color-wheel.imageset/Contents.json create mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-color-wheel.imageset/icons8-color_mode.pdf create mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-colosseum.imageset/Contents.json create mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-colosseum.imageset/icons8-colosseum.pdf create mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-command.imageset/Contents.json create mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-command.imageset/icons8-run_command.pdf create mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-flask.imageset/Contents.json create mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-flask.imageset/icons8-test_tube.pdf rename Boop/Boop/Assets.xcassets/Icons/{icons8-trim.imageset => icons8-kebab.imageset}/Contents.json (85%) create mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-kebab.imageset/icons8-kebab.pdf create mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-roman.imageset/Contents.json create mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-roman.imageset/icons8-roman_helmet.pdf create mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-scissors.imageset/Contents.json create mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-scissors.imageset/icons8-scissors.pdf rename Boop/Boop/Assets.xcassets/Icons/{icons8-trimend.imageset => icons8-snake.imageset}/Contents.json (85%) create mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-snake.imageset/icons8-snake.pdf create mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-sort-characters.imageset/Contents.json create mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-sort-characters.imageset/icons8-alphabetical_sorting.pdf create mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-sort-numbers.imageset/Contents.json create mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-sort-numbers.imageset/icons8-reversed_numerical_sorting.pdf delete mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-trim.imageset/Trim.pdf delete mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-trimend.imageset/TrimEnd.pdf delete mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-trimstart.imageset/TrimStart.pdf rename {Boop/Boop/scripts => Scripts}/JoinLines.js (67%) rename {Boop/Boop/scripts => Scripts}/JoinLinesWithComma.js (73%) rename {Boop/Boop/scripts => Scripts}/JoinLinesWithSpace.js (74%) rename {Boop/Boop/scripts => Scripts}/TrimEnd.js (75%) rename {Boop/Boop/scripts => Scripts}/TrimStart.js (76%) rename {Boop/Boop/scripts => Scripts}/WkbToWkt.js (100%) rename {Boop/Boop/scripts => Scripts}/WktToWkb.js (100%) diff --git a/Boop/Boop/Assets.xcassets/Icons/icons8-abacus.imageset/Contents.json b/Boop/Boop/Assets.xcassets/Icons/icons8-abacus.imageset/Contents.json new file mode 100644 index 00000000..666bb62b --- /dev/null +++ b/Boop/Boop/Assets.xcassets/Icons/icons8-abacus.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "icons8-abacus.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" + } +} diff --git a/Boop/Boop/Assets.xcassets/Icons/icons8-abacus.imageset/icons8-abacus.pdf b/Boop/Boop/Assets.xcassets/Icons/icons8-abacus.imageset/icons8-abacus.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b0438c7c61522fedc0c4bcb8f88d02cd7371b5e8 GIT binary patch literal 1802 zcma)7c~BEq7;i-@22fG)LhTcULC_>?NDK;82}db7K)`Znz$IBigk)i};jq#S6f_*x z19S=^cyYA>6hwhi9R)-xhZJD|8DRucLGb{p<+Quu)W7=X&3pTP``-6{zwg`cTSFHc zyB!dfNii%Q$RDFH03D!yM<^B+faZiqgm?fjBOopX06?=71>p!r%t0`Y*dTmVfKaTg zC{i3lU@;{;jd$MhXP&9H?O0;8Zrb4?%ZhN0B0u?>t7vP=-Ql3?_w1UD2ew#gb=TdI zTgQ)o_#hmAZ&{V`(K^!Zfnua)_)XaMhJ=IX7q=@E&I6o97AGeoZLH9&>=w7(aQTkKL zF|n4!_l0Dz_+42uNE)dq8^3U;S8aFZThnstangv{#_fp@8=G69s zFjn^Kt~Ga(Ca;CPjql5B7+5!P@#V7Bc~=z9hjq}4WlciA%9_WW7J3%|9_vOKMki=)aK&tDR`Lv=Vk;VbH1q+y^iA5{Uy+;TP`_0 zG?Tc}G-q5k+U`+TobF+{cvq>=C+mjb>U-IHyPT7ikMxum&V=eH$8xTzUYi_cZs}Wl z-Q!GI-anZJV%aO<8W;Fxd7xQtm^M#AUEsLq_tW_z&HLrq<}%%Pi4+YU-~;}}IURppZE)GF_y4S}oq`)zfFs_xoSF}tPqHuIkM z%5rj0GMkV(L0*cInRMI8GcdZ?sG}w3QEHcRNquTxq5oiu6FD2P1EX&k1?jKSsBuy@ zbPe`IvR=1X)ly@x3@<;BS`yViZW(;MC41whkQF&&`&|>Ef+zUp2t?&c^^6l~Fe**y zJfHTGWQ)_+aWC`k!{7MrF-fTAdU-TqV_FXB0|g-JLdoT`J#CW-TctPj77E9-H0vjm zVr+KoZ8aKx$4*=%W{n1z)vSH)V5gth_~5yN?bq>PM(y7Y#|3CKsxBu~7%!VBOw-|H z#Ih*j6|9No_%gZYo8HY`o$>lnF~}vy*5%umF6`6~bGICjvwKpG^sl$~ds$dPD|stz z3$x7#x*Ofl>(jjE0M<~I?(m07UgLWvo0i?tIdQr_a#HhS?8h%DnI{@4h(s`*pu`iI z+GIYHGm+8e5Sx5Yu6E8QzB<)y!*P2zoJezEVL<{!qrr4y0cf0k00J~VOpHYG6EBF7 z=+kzXvvvT@Jt7zZG#6NisBOBy7$U)mV>9(+KOzvp)@V35NI-P3lSy`-dM^i+;KXJr zAPdq|^|8lLS@1kMQ`Xh!3_~~KP7IbvgUOrt5i_s@z%iMc11W<;?6N^ZMSO&7Z%uBQ zQbFS)QdEZV5h);j!JVgxWIR(8=QK&xL>)x}DZ!tV&7I{gBW2Drz?x@(LljFK#egv% z7GWrWsE`?TCom4c@!;Jw!mR`-#Ngln5noD0G2ymt>T6suR3PIM#rOXon~TY=dDlok4i-Q;bfB z2={!7L3D@+`DYkJC%(F0;nEH?9COV1`l*uS_Q4|NH@Trf- dLE?`BG7RdtN^uy&)e0ddi%u~#v~{+l{0DSnw3Pq= literal 0 HcmV?d00001 diff --git a/Boop/Boop/Assets.xcassets/Icons/icons8-trimstart.imageset/Contents.json b/Boop/Boop/Assets.xcassets/Icons/icons8-camel.imageset/Contents.json similarity index 85% rename from Boop/Boop/Assets.xcassets/Icons/icons8-trimstart.imageset/Contents.json rename to Boop/Boop/Assets.xcassets/Icons/icons8-camel.imageset/Contents.json index a2bdca6f..bc0f5692 100644 --- a/Boop/Boop/Assets.xcassets/Icons/icons8-trimstart.imageset/Contents.json +++ b/Boop/Boop/Assets.xcassets/Icons/icons8-camel.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "TrimStart.pdf", + "filename" : "icons8-camel.pdf", "idiom" : "universal" } ], diff --git a/Boop/Boop/Assets.xcassets/Icons/icons8-camel.imageset/icons8-camel.pdf b/Boop/Boop/Assets.xcassets/Icons/icons8-camel.imageset/icons8-camel.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8b2762eb37c7e299c7c36b17036aaa05f6b93e6c GIT binary patch literal 2447 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 Berx~$ diff --git a/Boop/Boop/Assets.xcassets/Icons/icons8-collapse.imageset/icons8-merge_horizontal.pdf b/Boop/Boop/Assets.xcassets/Icons/icons8-collapse.imageset/icons8-merge_horizontal.pdf new file mode 100644 index 0000000000000000000000000000000000000000..05ed2586d03d613fd3bd617b760206aebee16858 GIT binary patch literal 1473 zcmY!laBlN;jMCvC{H=d);4qf*ds<4-LI9Mbsa9aj0z z9u%YUTj0k99dp--p-2BMoAl-TbLGE3LN6VUPdb^qR>k!CwM*eldPcn0C(igR;i>Ze zAm6k_^W@k+p6g+^6`syKFY|G%b;0vn<&RpGWF1x=Tg=_1u(0FMEt7eZI@0fX2OjP< zK5zDC)6%zJVk#HdZ4hIAwrxwgo8^L_-Aa4=BX(ag{K9)KWKXKMmagYKS>A1X3gSLp z(2IKKtnu)U20lS+ELIMo97_aWV zm&f>UZa%m8LzTNvZr4odI{9dpgw-yCp9WrQ&+$CE`r=c0=cBZa<_cMs#;ljSY((|G z$j{Qe_2T4LmRX-wO&1)r0 z`rmBXtun2~@=luFoahfdZ@-l|9opeHW%e!2 znhDYOe&)WjP|qs;7#is=Qs_N>JFkBEPR%E_(k~Cquid+@qm=J-OiJ0On5vn&Uai8( zI}b0p*kJ!J`Q`mDlm9UuxU9;>m713VO;r~Qdy9ypdXN! zo(eWIAh9SluLP(KmJNJUQ!*2s@+%agfkFlfMy4PX3s&o#pH~7@T&w`fN03b8UX)*2 zfaDyA>0nWq3xk1n7A58t7l3R^u7nADDwGtJg53b}hBHu=OKMqWa%zyf6G#cf7y3b| z#rdU0$*IK(ps)x+@)O9#u)K`$Q!&_~-kB-IK=*^Z9RzoKDae~h2AClk;0(;;CHX}P z8p(;7MfnPbdWI%?MhY4kB_#z``oLfX3Z@q&7Gz{57whF0rE6+}tqCZ~Pbp0XmKnrr zL&S+WlJyYxJ13ST=H#bCj0VO}F*H^XdMb)i)3^*2EVvBdK*7w^)Yw!ZO#vomX#q4D z1Qhb%V&(?G7(){?Fa!n>85)=ZV*^#4p`p1YLad}HF*7H%2wczx yXI7;GoeYZQp#1z21(3%fiN`Z9Enfi?4d8e!E=epZ0sGL<$k>oeRn^tsjSB!@%L`)w literal 0 HcmV?d00001 diff --git a/Boop/Boop/Assets.xcassets/Icons/icons8-color-wheel.imageset/Contents.json b/Boop/Boop/Assets.xcassets/Icons/icons8-color-wheel.imageset/Contents.json new file mode 100644 index 00000000..db8da321 --- /dev/null +++ b/Boop/Boop/Assets.xcassets/Icons/icons8-color-wheel.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "icons8-color_mode.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "template-rendering-intent" : "template" + } +} diff --git a/Boop/Boop/Assets.xcassets/Icons/icons8-color-wheel.imageset/icons8-color_mode.pdf b/Boop/Boop/Assets.xcassets/Icons/icons8-color-wheel.imageset/icons8-color_mode.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3075c8459a137bfd12d21673f2760b57f173cc95 GIT binary patch literal 1308 zcmY!laBlN%hJcf^3>&v#7=M&7#L61GmFD{u2ZU;Os( z(pz#L(w1h~Z&Ep6aOT5XzFGU{v+u2y`SPPwX-=`~d&^}`;--F%X)jg>JiKy(`*?un zXF=|t&8jR`?)MbuE!oiX%5PnvX6mujC#McRUK=7d-$T&tNwM72ct5802lHo0WxJ_& z_7qH2|7Q2*Txay!1HE}A(viBXvsa(j56pQsQMTCFZ2gAf2`5a&vkLoqqYzmUpenlihR>D3HrK^vXL_an{~-ELT$oX5Um^3G2; zk|n%lBh49%^f!1nId-b(r>F6(%lQDy32wsn=3mh|auxe02lJ-kyd zxT&%n$z07=SH6r{kCW@IaP%iz!;4J9@wXUrtX>@qI{nap@4c-vgPoU`{8BUTeB_XL z-uhA!_y4ovb(4;sTsd|6?~=$5Qn%*+ULaN#{@hYJ*V5mg>lpLQdItNuyMHrBo_+k9 zD>W|#8f8EhD6&B@45EQ?Y+_^rk_YjO;7I`-`K}cu?!hI%h*z+&0SN$sexd=8qoD8X zs9>m|pPUFJfyn_V0VIJ4YK|$~90mQ5%7Rn{{eZ;uRIr%=iAAY-B|vSk6y}?nl9}j~ zU!f2U6f#gSG6kVnuv+K*yb_?|Vg*nVg``LKqWsbVB;{lGoPnxbQp+-vQ-j={KuRFK&<{#2&Mz%WPAygdg+&mOpFl2#WfO#- ziop)`&P*u=x*z22Ah_F0LEc0%zzoR%XJGaz$uCmSNKVWw%2zPdGc?gNQqagKDJihh z2L>xpFuf?TAR{xmSTDaQT~iZmO+Zn8N@+4MI})!A5hvzI)DKA!c9*3?6iKhQL5U z6EiaeCId7v3k#s@QN;`m41sAFCRS3En36B`oUCu7L*=euSN)A0*+a?0)zTc_OZpWE;I zPM?+M#+QsG?^YE`8-)B+e{y2~{`nuTyZ6oi&veCPy~p`%ry9YI3qje+b=EwpTa9Fz zx7}Q8^Wpmz&E4j3vvy{L4iJIdosw@^`AhGW{({z=k)?2noW^=BT6xkRP*tPD{vq@Q6TW{abo?WB2Bg^uX zM#}Xmf41?J=&e#e;C24u>nNF*i*$SP4$XBknzvf%XIWP1rTj#ZjPfg{zt>(D$y^in z*;|P5-JC1WwM7>^ei?LeNp^5$O6z4Si}sdZC#0r$-!!Q>Q#;qqRH2>a^#Q4{t?T_4 z=W(UHZLa)u?)aI6T?+**gAdm*O*A@p$6)tC&5b7?zEqtRBeI}FbNRHuf5~6_PVSa* zR@k~|=F5j`tm{}kS!U)e<2w~yX|>MxpytF5kH7;L7wLM$6lAd!A3qo6e{FGH#VPqc z{|@pn!~A{fchQ9Y4_n`Fee=$uV)y3@(i3CS{dnBY zbXNxoFEC$ht@mc%r?qpfw(E2&i{E3_aNn$wvX`0TdYj{kqNj0{K5TNykMGRrpK`Tz zQnlUD9GN|?rhJtqZzg12+WSOw@8sOVpI_<^z5gJ;J|mEwD>W|#nreV7PCd&I#67qKnD!KGY(N4)pr2>}_i}Op1l2eNnKw%MtOY(~pG?EiDi}Do=^$bn)j1)97N=gc>^nt+&6ihElEXc@AF4oI0 zO4rl`TN6-}pHi9(ED?y;hKLh$Bp@=T3nJ?R08&)p`oQY Lm#V6(zZ(|-lHl>j literal 0 HcmV?d00001 diff --git a/Boop/Boop/Assets.xcassets/Icons/icons8-command.imageset/Contents.json b/Boop/Boop/Assets.xcassets/Icons/icons8-command.imageset/Contents.json new file mode 100644 index 00000000..425c07ad --- /dev/null +++ b/Boop/Boop/Assets.xcassets/Icons/icons8-command.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "icons8-run_command.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" + } +} diff --git a/Boop/Boop/Assets.xcassets/Icons/icons8-command.imageset/icons8-run_command.pdf b/Boop/Boop/Assets.xcassets/Icons/icons8-command.imageset/icons8-run_command.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d62c2677083eb4034b4682358d5eac458c5a7c57 GIT binary patch literal 1473 zcmY!laB6C2{#C!@%-=QEd`0DI5D4?Q-DS(>}sPb!}L zzjQ}W;-ZWt6IXAHEi1jaKj`F-zyD6e@1OqXqq=X_E+g?-y`Rso32B$HSaEII>qV-z znk>y*A2Iuxc)&|d?z2}Jr|8NV>AEQ^N?z^0Hm5B@`k&+I&)CPKoWznNcs8=CW~qgKP;`+eu)R(;{U-={g=S+DY}bydEn&&I2K zH4k+^KB!r+b$aQ=^r+i<3Cd%8Jx}U*r?W3@}~HUwrju(mkBk;`PXP)opR#`tIcbU46%9XR{rdUHhtY*mlaL zOn>_Jpx5P)-D+#XDvIBx{@mJYcT_*gKx94lyJF=VLd*wS&0P1dtO>e!Bqp(MH_O?5 z9B(JYZ&J3A^ED(ELC0!d(+1xf%(AcC4>3O7eVKcuoCRY5-> zF+CM*WjI^|a=L<5Bk6pTzkC>E^NIX|xisJK`Gl#d{p#=R)N zv;fID5Yxe;Fc$^`?JP>nD=q-plw1iD_Eab-Dh0a%g;iqD-L%lOoih=G2c{>R1_EL~Hkqj_HGQb&_$4l~y z6f}|(GmG*S4D}36^o$fVGD=Dctn`7w3KUE)N-W68OfJ^TFG|m9yBpC3t*_CiJ6;Ys53M$1;z%dIzvNqON3ZSQDSCJY7w}g z4bH4e1v(iN%R%}1B?=&qLlTc?URu5aC>p@=T3nJ?R08&)p^>p6m#V6(zZ(|-WDE{* literal 0 HcmV?d00001 diff --git a/Boop/Boop/Assets.xcassets/Icons/icons8-flask.imageset/Contents.json b/Boop/Boop/Assets.xcassets/Icons/icons8-flask.imageset/Contents.json new file mode 100644 index 00000000..f82d746f --- /dev/null +++ b/Boop/Boop/Assets.xcassets/Icons/icons8-flask.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "icons8-test_tube.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" + } +} diff --git a/Boop/Boop/Assets.xcassets/Icons/icons8-flask.imageset/icons8-test_tube.pdf b/Boop/Boop/Assets.xcassets/Icons/icons8-flask.imageset/icons8-test_tube.pdf new file mode 100644 index 0000000000000000000000000000000000000000..22ff8da934dd2fd91649a50239daa3e185ceea5a GIT binary patch literal 1234 zcmY!laBlRL>bkJ*r;^}8Lb`T{oT|1yi+SGZ;E@(|B` zuP>TYAhoi~dMsc%I*);ET1&vadXbGjb?lgT;4wZXjNBq@!-8ftn!^j zU%qgLB!BpRAtm{nsrTyS*|p)Xl2oQ8sBS!-Q}Sh2>+6_h)ZdA0MRb>*w#w_9IL-Msr*FL#lCpWV#9SbNzM&GOH0Z15?Z9=G7`iM~4pksA$J z=bgKoEA5w(uw7?+rF#ADKg-{K|1ztN@%FwgE4WhgQlKFXWP#!c6fqzg7&XSGh9G$m z&j=oa;5c)wC~*%i0mhetjSWZu2=o&TfE)#VXGaA?1^whiAPI~`pahTvBB(j0aB~#& zLn;eW74!oV(^J7_1|$}x=9K`o!4igVYD#9JQ+|a)G*HMu!N?SZV!>*i^Yco8ii;IM zDGQQ}+>7!{3y_=xF&!)lb73&h&Z5M;;sTIO$(1l+Plb}AQm`99-f#x0a!D=AOim4Q zcLFJa_(DG@wK%`DC^@xQ0TdQNNPYsj7?!#bekuk#)H^e!80dbGw}aqrF9mrM$pAAX z1Dt`Wz9hd$K_fXavnXG|P|wgr&qzTdqokz3N*@@kK*98)#Da{>*W!}Iq7twVEiH|?R8?L5 G-M9c*W0bQ1 literal 0 HcmV?d00001 diff --git a/Boop/Boop/Assets.xcassets/Icons/icons8-trim.imageset/Contents.json b/Boop/Boop/Assets.xcassets/Icons/icons8-kebab.imageset/Contents.json similarity index 85% rename from Boop/Boop/Assets.xcassets/Icons/icons8-trim.imageset/Contents.json rename to Boop/Boop/Assets.xcassets/Icons/icons8-kebab.imageset/Contents.json index e97debc2..069fa642 100644 --- a/Boop/Boop/Assets.xcassets/Icons/icons8-trim.imageset/Contents.json +++ b/Boop/Boop/Assets.xcassets/Icons/icons8-kebab.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "Trim.pdf", + "filename" : "icons8-kebab.pdf", "idiom" : "universal" } ], diff --git a/Boop/Boop/Assets.xcassets/Icons/icons8-kebab.imageset/icons8-kebab.pdf b/Boop/Boop/Assets.xcassets/Icons/icons8-kebab.imageset/icons8-kebab.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c2f2ba63968b168a59ebadabd3609b887740487d GIT binary patch literal 1797 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 Tm4JO{Xl!D}rK;-c@5TiHiNZN< literal 0 HcmV?d00001 diff --git a/Boop/Boop/Assets.xcassets/Icons/icons8-scissors.imageset/Contents.json b/Boop/Boop/Assets.xcassets/Icons/icons8-scissors.imageset/Contents.json new file mode 100644 index 00000000..87bd91c8 --- /dev/null +++ b/Boop/Boop/Assets.xcassets/Icons/icons8-scissors.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "icons8-scissors.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" + } +} diff --git a/Boop/Boop/Assets.xcassets/Icons/icons8-scissors.imageset/icons8-scissors.pdf b/Boop/Boop/Assets.xcassets/Icons/icons8-scissors.imageset/icons8-scissors.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3efd4715ed195695323fb7f0be2ee50de504e15d GIT binary patch literal 1418 zcmY!laBlN;jQC#%SFry(p^QYSw7 z7xYK-bAm{($&Oh?I}LvP<+D6>fByL&Z%I20Sy{Rt!&B}^Y3fa1u$s>? z)x^ zHrYzGp!HWSCxj-r$@E`|Je6#{RB=KnC%g0G=VxMPRky0{C=fq9uVO>PmGaAzFZ9Y8 zPs?MN>~@KvQz|NXE?=Qz!8x;N|pj}N`41bH7#d-{Ea<%ees&#vrrohJIj zV#hS?z@S=zQtYOKFg7QeUEm!`{&&c&$cmLI(BK1 zqFmp<(=&np2cE>-|#2uSL8FUl`1KynVm zbg(GQg~32OixTsS3qUp{SHgrn6-tUq!EOL~!x^Z`CABOwIW@@L38Vz#3;m$f;{4L0 zcBL$6&l9B=|ePFNx1=EWX3o0po{FN>G%f=L3oZjVP%tw!H8xd9Q-FzC8UsTL1Qhb% zVrC{57-9y7z~DhwX9NrsG%<4{U@|}xv$O=d9#zcH&FpE+K(m%!4e;HAk&hD;BJKtF*(+}r7+_7M5hjOnC}%6H z)fB5ssRKzve0)-7j748poU`Qam`}Rlh-Rl&v&~b5*9WLXxBk$4r`WE_v85_Q@?-r8 z+Y;LBXMu~22@lJRnWrX7n&04pN~Qvp^WxI2@_83GsXjmrR|Gj~?iT+eB-PZvTNUN0 zlS@7p@ujBJ$T&Qg*6_uOGS9k1V3OGAqIJcWBuLRW(`|O>*<<9t_=!Ve8ZM=HWoKMR(3cD5i}Ir1|;{Ij#rx&Fg9Xx+lfx z^Y^@dzwr^#SP`>#U~5)efpECjy)H-i?VK*#>s0Z`e|Cp!-1<2xmsE#OhpOf#b(Grp z^%oBtP{_M#o?kw7@(Q)nG(aQTOn|y>BN&9j$5G^-xuYQ(Lse}^gHd#o< zn(Qi6eH=7~Dkkn*@nSO!+_v`lR#|g?A*&qPB*;KF+W0sxcWV(_?J=W#fd$E(p0NZp2i-pDCXB z-6+*z+x*z+fy%J@Y?rTI8m4;Y*Gg(@7qh2L#v@;`iVRO@7pjP76$1M2WHsG9c-$ZG z?7QXyLnfI_HnBGu7qTXH3h;@HJ7Wz$mpui=9h-Z6)OP} zbpP+=9lF&E7qxQ;*J_R{m*y=@uPn?9roMZ&^Ph>ylRv%>uKss&a?(3x;ZF1f3gm=; zkV523CZaOsl=X;q;_%j3nSpGGU)NZ(G8u*3NXe_7bHb?&jUFgG}` z+~B|&d6!@=1eh}DY={fs&^RI*512;4aEvVmIaUN@LG+jiHiM7mLabf8?jbD x{~Y+T6G4QsEXy=57Y1a3uU;NE4wDPW(jd<(AEraFJVKleo`5nocJ(5o{tI&jVxRy3 literal 0 HcmV?d00001 diff --git a/Boop/Boop/Assets.xcassets/Icons/icons8-sort-characters.imageset/Contents.json b/Boop/Boop/Assets.xcassets/Icons/icons8-sort-characters.imageset/Contents.json new file mode 100644 index 00000000..1f185c4c --- /dev/null +++ b/Boop/Boop/Assets.xcassets/Icons/icons8-sort-characters.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "icons8-alphabetical_sorting.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" + } +} diff --git a/Boop/Boop/Assets.xcassets/Icons/icons8-sort-characters.imageset/icons8-alphabetical_sorting.pdf b/Boop/Boop/Assets.xcassets/Icons/icons8-sort-characters.imageset/icons8-alphabetical_sorting.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d60396911faaada14311ba2f124938c9cc3eaeb4 GIT binary patch literal 1295 zcmY!laBlRL?~?~VbF%Xh0*zXcs4niG$o5M*LD-dvzR z>5ja|#7)bsXC9EYeSLV9QvI~J$G^YE?f?7Y>)&$4>}KuY*$X?k}D4sRy3)C<$IzoL8daT{*L|R`Jt}q&X^0rmp_yqs)@L zjMDRk5C1iH<@p+;ujRD zAQ~90CWeL}c@WPC9{b?ikND}YiZBni3~<(C#9IR|1oSQO^MV4$5viFw5ZAe)jaVZxpYB}JuRH-Nn1 z3{>TkT9%od8szQ-QUdXXeo$(0erZv1YOw++EP{~y1adJfXCVAk40fn@W=b*8{UC1# z!QEa8@+Oi2W=IA&19MDCevyJka$;stzJj5ip^2W6f<{J3Nr9C zmjN6on3=_ys#KtpL9rZ^pI@Q?@;D^%c;=<$D}bT_9IwSCiA5z~ R9~v5%8gr?ty863u0RUVVsG|S? literal 0 HcmV?d00001 diff --git a/Boop/Boop/Assets.xcassets/Icons/icons8-sort-numbers.imageset/Contents.json b/Boop/Boop/Assets.xcassets/Icons/icons8-sort-numbers.imageset/Contents.json new file mode 100644 index 00000000..1bf8c3c5 --- /dev/null +++ b/Boop/Boop/Assets.xcassets/Icons/icons8-sort-numbers.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "icons8-reversed_numerical_sorting.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" + } +} diff --git a/Boop/Boop/Assets.xcassets/Icons/icons8-sort-numbers.imageset/icons8-reversed_numerical_sorting.pdf b/Boop/Boop/Assets.xcassets/Icons/icons8-sort-numbers.imageset/icons8-reversed_numerical_sorting.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c14138af9a30bf86f176f40d243974ddb7cc963c GIT binary patch literal 1355 zcmY!laBlRDYAPezfa_4}MAVSzvFKO`)jLW0z~XSq)L z?OkaWl5Mnj+OEH%t$+W#`4?N&dw%}*UvJ&l=ht(uRg0Nog0UT*X$yZBwLI0LUObIr{0afqpT@uaixyMdru>Cc|!r+POno*A(8?%nFp zKYi?m;@@9ITvzA&?DVc%Z7I{+n1AjQzI{}>(Q*u5)SVu{)86Q%M;K0W=hr}L)zC9`l2`5T6!e`P z6$};hlM{g?F!cZ>fFuw>%`t_Wqo5yBS&*urACQ=y3N|w!u_!gK1gH&`AbnF)G83Kh zD-@!ELIw&(rXUmxR_mOfR{~UAtN=>UkmT!LlwVqa*W`vYife62`I`>DNP3EUgEVO;=~-udWid-6H5|v^3x$k1LLO{ z8Y>7r6-B9OTm}jjTn2EUU}kD+Y^so^028w?vs3`fD&)b%Of7&x0Rl*328Nhore?sH zMN?;H3Un!&n58i=y`qX48khlN1SVEel$e>5S_Cfgf-|d9flda+a!`JLi2}&uki_Ge fmzJ*piUx4J7MCOzm4JO{XlQ86rK;-c@5TiHHJ-}k literal 0 HcmV?d00001 diff --git a/Boop/Boop/Assets.xcassets/Icons/icons8-trim.imageset/Trim.pdf b/Boop/Boop/Assets.xcassets/Icons/icons8-trim.imageset/Trim.pdf deleted file mode 100644 index 81be955b12e0f24d26ac2591b344f4e2f032caf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 166260 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 bUN-+*j$OvfhIg7D5%Mzg&2D#nchkHBqb)zV diff --git a/Boop/Boop/Assets.xcassets/Icons/icons8-trimend.imageset/TrimEnd.pdf b/Boop/Boop/Assets.xcassets/Icons/icons8-trimend.imageset/TrimEnd.pdf deleted file mode 100644 index 03637cc1a0510697d796f187f798772d7213a272..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 166043 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�k)5MY^{JEfRkv@|2YY$?1Wi=X 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

iAZaLOO93qu7`?e%++osu;xNX}O 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 diff --git a/Boop/Boop/scripts/AddSlashes.js b/Boop/Boop/scripts/AddSlashes.js index c3df233c..ffe54fc0 100644 --- a/Boop/Boop/scripts/AddSlashes.js +++ b/Boop/Boop/scripts/AddSlashes.js @@ -2,7 +2,7 @@ { "api":1, "name":"Add Slashes", - "description":"Escapes your text", + "description":"Escapes your text.", "author":"Ivan", "icon":"quote", "tags":"add,slashes,escape" diff --git a/Boop/Boop/scripts/CamelCase.js b/Boop/Boop/scripts/CamelCase.js index 559ae1d2..eeaaa728 100644 --- a/Boop/Boop/scripts/CamelCase.js +++ b/Boop/Boop/scripts/CamelCase.js @@ -4,7 +4,7 @@ "name":"Camel Case", "description":"convertsYourTextToCamelCase", "author":"Ivan", - "icon":"metamorphose", + "icon":"camel", "tags":"camel,case,function,lodash" } **/ diff --git a/Boop/Boop/scripts/CountCharacters.js b/Boop/Boop/scripts/CountCharacters.js index 38b928f5..2ee1cfd8 100644 --- a/Boop/Boop/scripts/CountCharacters.js +++ b/Boop/Boop/scripts/CountCharacters.js @@ -2,7 +2,7 @@ { "api":1, "name":"Count Characters", - "description":"Get the length of your text.", + "description":"Get the length of your text", "author":"Ivan", "icon":"counter", "tags":"count,length,size,character" diff --git a/Boop/Boop/scripts/CountLines.js b/Boop/Boop/scripts/CountLines.js index a1a006c0..2bfe67e6 100644 --- a/Boop/Boop/scripts/CountLines.js +++ b/Boop/Boop/scripts/CountLines.js @@ -2,7 +2,7 @@ { "api":1, "name":"Count Lines", - "description":"Get the line count of your text.", + "description":"Get the line count of your text", "author":"andipaetzold", "icon":"counter", "tags":"count,length,size,line" diff --git a/Boop/Boop/scripts/CountWords.js b/Boop/Boop/scripts/CountWords.js index 81f8bdaa..8d222427 100644 --- a/Boop/Boop/scripts/CountWords.js +++ b/Boop/Boop/scripts/CountWords.js @@ -2,7 +2,7 @@ { "api":1, "name":"Count Words", - "description":"Get the word count of your text.", + "description":"Get the word count of your text", "author":"Daniel Stone", "icon":"counter", "tags":"count,length,size,words" diff --git a/Boop/Boop/scripts/DateToTimestamp.js b/Boop/Boop/scripts/DateToTimestamp.js index ec5addfb..c42067b5 100644 --- a/Boop/Boop/scripts/DateToTimestamp.js +++ b/Boop/Boop/scripts/DateToTimestamp.js @@ -2,7 +2,7 @@ { "api":1, "name":"Date to Timestamp", - "description":"Converts dates to Unix timestamp", + "description":"Converts dates to Unix timestamp.", "author":"Noah Halford", "icon":"watch", "tags":"date,time,calendar,unix,timestamp" diff --git a/Boop/Boop/scripts/Deburr.js b/Boop/Boop/scripts/Deburr.js index 64c8271d..2d1f6a93 100644 --- a/Boop/Boop/scripts/Deburr.js +++ b/Boop/Boop/scripts/Deburr.js @@ -2,9 +2,9 @@ { "api":1, "name":"Deburr", - "description":"Converts your text to basic latin characters", + "description":"Converts your text to basic latin characters.", "author":"Ivan", - "icon":"metamorphose", + "icon":"colosseum", "tags":"burr,special,characters,function,lodash" } **/ diff --git a/Boop/Boop/scripts/EvalJavascript.js b/Boop/Boop/scripts/EvalJavascript.js index 35fb7745..713d7534 100644 --- a/Boop/Boop/scripts/EvalJavascript.js +++ b/Boop/Boop/scripts/EvalJavascript.js @@ -1,10 +1,10 @@ /** { "api":1, - "name":"Eval", - "description":"Evaluate Javascript.", + "name":"Eval Javascript", + "description":"Runs your text as Javascript Code.", "author":"Sebastiaan Besselsen", - "icon":"unknown", + "icon":"command", "tags":"js,script,run" } **/ diff --git a/Boop/Boop/scripts/JsonToQuery.js b/Boop/Boop/scripts/JsonToQuery.js index c86f5db7..eb28adb5 100644 --- a/Boop/Boop/scripts/JsonToQuery.js +++ b/Boop/Boop/scripts/JsonToQuery.js @@ -2,7 +2,7 @@ { "api":1, "name":"JSON to Query String", - "description":"Converts JSON to URL query string", + "description":"Converts JSON to URL query string.", "author":"Ota Mares ", "icon":"website", "tags":"url,query,params,json,convert,encode" diff --git a/Boop/Boop/scripts/KebabCase.js b/Boop/Boop/scripts/KebabCase.js index b468e45b..52081e92 100644 --- a/Boop/Boop/scripts/KebabCase.js +++ b/Boop/Boop/scripts/KebabCase.js @@ -2,7 +2,7 @@ { "api":1, "name":"Kebab Case", - "description":"converts-your-text-to-kebab-case", + "description":"converts-your-text-to-kebab-case.", "author":"Ivan", "icon":"metamorphose", "tags":"kebab,case,function,lodash" diff --git a/Boop/Boop/scripts/MD5.js b/Boop/Boop/scripts/MD5.js index eec5e4f0..6631c101 100644 --- a/Boop/Boop/scripts/MD5.js +++ b/Boop/Boop/scripts/MD5.js @@ -2,7 +2,7 @@ { "api":1, "name":"MD5 Checksum", - "description":"Computes the checksum of your text", + "description":"Computes the checksum of your text.", "author":"Ivan", "icon":"fingerprint", "tags":"strip,slashes,remove" diff --git a/Boop/Boop/scripts/MarkdownQuote.js b/Boop/Boop/scripts/MarkdownQuote.js index 9c801b29..cf4ce375 100644 --- a/Boop/Boop/scripts/MarkdownQuote.js +++ b/Boop/Boop/scripts/MarkdownQuote.js @@ -2,7 +2,7 @@ { "api":1, "name":"Markdown Quote", - "description":"Adds > to the start of every line of your text", + "description":"Adds > to the start of every line of your text.", "author":"Dan2552", "icon":"term", "tags":"quote,markdown" diff --git a/Boop/Boop/scripts/NatSort.js b/Boop/Boop/scripts/NatSort.js index 177d7c17..5bf860bc 100644 --- a/Boop/Boop/scripts/NatSort.js +++ b/Boop/Boop/scripts/NatSort.js @@ -4,7 +4,7 @@ "name":"Natural Sort Lines", "description":"Sort lines with smart handling of numbers.", "author":"Sebastiaan Besselsen", - "icon":"table", + "icon":"sort-numbers", "tags":"sort,natural,natsort" } **/ diff --git a/Boop/Boop/scripts/QueryToJson.js b/Boop/Boop/scripts/QueryToJson.js index 5f746744..41a1d7ed 100644 --- a/Boop/Boop/scripts/QueryToJson.js +++ b/Boop/Boop/scripts/QueryToJson.js @@ -2,7 +2,7 @@ { "api":1, "name":"Query String to JSON", - "description":"Converts URL query string to JSON", + "description":"Converts URL query string to JSON.", "author":"Ota Mares ", "icon":"website", "tags":"url,query,params,json,convert,decode" diff --git a/Boop/Boop/scripts/RemoveDuplicates.js b/Boop/Boop/scripts/RemoveDuplicates.js index 162df269..bfdd87c6 100644 --- a/Boop/Boop/scripts/RemoveDuplicates.js +++ b/Boop/Boop/scripts/RemoveDuplicates.js @@ -2,7 +2,7 @@ { "api":1, "name":"Remove Duplicate Lines", - "description":"Ensures each line of your text is unique", + "description":"Ensures each line of your text is unique.", "author":"andipaetzold", "icon":"filtration", "tags":"unique,duplicate" diff --git a/Boop/Boop/scripts/RemoveSlashes.js b/Boop/Boop/scripts/RemoveSlashes.js index aac8ac17..95243a59 100644 --- a/Boop/Boop/scripts/RemoveSlashes.js +++ b/Boop/Boop/scripts/RemoveSlashes.js @@ -2,7 +2,7 @@ { "api":1, "name":"Remove Slashes", - "description":"Unescapes your text", + "description":"Unescapes your text.", "author":"Ivan", "icon":"quote", "tags":"strip,slashes,remove,unescape" diff --git a/Boop/Boop/scripts/ReverseLines.js b/Boop/Boop/scripts/ReverseLines.js index 92372ba1..b5cc8273 100644 --- a/Boop/Boop/scripts/ReverseLines.js +++ b/Boop/Boop/scripts/ReverseLines.js @@ -2,7 +2,7 @@ { "api":1, "name":"Reverse Lines", - "description":"Flips every line of your text", + "description":"Flips every line of your text.", "author":"@Clarko", "icon":"flip", "tags":"reverse,order,invert,mirror,flip,upside,down" diff --git a/Boop/Boop/scripts/Rot13.js b/Boop/Boop/scripts/Rot13.js index b3e58750..bd70f380 100644 --- a/Boop/Boop/scripts/Rot13.js +++ b/Boop/Boop/scripts/Rot13.js @@ -2,9 +2,9 @@ { "api":1, "name":"Rot13", - "description":"Applies the Rot13 cypher to your text", + "description":"Applies the Rot13 cypher to your text.", "author":"Paul Starr", - "icon":"flip", + "icon":"roman", "tags":"spoilers,encryption,plaintext" } **/ diff --git a/Boop/Boop/scripts/ShuffleLines.js b/Boop/Boop/scripts/ShuffleLines.js index 0c2d3458..002abdd8 100644 --- a/Boop/Boop/scripts/ShuffleLines.js +++ b/Boop/Boop/scripts/ShuffleLines.js @@ -2,7 +2,7 @@ { "api":1, "name":"Shuffle Lines", - "description":"Randomize each line of your text", + "description":"Randomize each line of your text.", "author":"@Clarko", "icon":"dice", "tags":"shuffle,random" diff --git a/Boop/Boop/scripts/SnakeCase.js b/Boop/Boop/scripts/SnakeCase.js index 54961777..eec7bfac 100644 --- a/Boop/Boop/scripts/SnakeCase.js +++ b/Boop/Boop/scripts/SnakeCase.js @@ -2,9 +2,9 @@ { "api":1, "name":"Snake Case", - "description":"converts_your_text_to_snake_case", + "description":"converts_your_text_to_snake_case.", "author":"Ivan", - "icon":"metamorphose", + "icon":"snake", "tags":"snake,case,function,lodash" } **/ diff --git a/Boop/Boop/scripts/Sort.js b/Boop/Boop/scripts/Sort.js index 2cfab192..58ae5f8d 100644 --- a/Boop/Boop/scripts/Sort.js +++ b/Boop/Boop/scripts/Sort.js @@ -4,7 +4,7 @@ "name":"Sort lines", "description":"Sort lines alphabetically.", "author":"Sebastiaan Besselsen", - "icon":"table", + "icon":"sort-characters", "tags":"sort,alphabet" } **/ diff --git a/Boop/Boop/scripts/StartCase.js b/Boop/Boop/scripts/StartCase.js index 5601b405..52904ca6 100644 --- a/Boop/Boop/scripts/StartCase.js +++ b/Boop/Boop/scripts/StartCase.js @@ -2,9 +2,9 @@ { "api":1, "name":"Start Case", - "description":"Converts Your Text To Start Case", + "description":"Converts Your Text To Start Case.", "author":"Ivan", - "icon":"metamorphose", + "icon":"type", "tags":"start,case,function,lodash" } **/ diff --git a/Boop/Boop/scripts/SumAll.js b/Boop/Boop/scripts/SumAll.js index 8f28a241..da0a3423 100644 --- a/Boop/Boop/scripts/SumAll.js +++ b/Boop/Boop/scripts/SumAll.js @@ -2,9 +2,9 @@ { "api":1, "name":"Sum All", - "description":"Sum a list of numbers (separated by be either a new line, comma, or semicolon)", + "description":"Sum a list of numbers (separated by be either a new line, comma, or semicolon).", "author":"Annie Tran", - "icon":"counter", + "icon":"abacus", "tags":"sum,calculator,addition,add" } **/ diff --git a/Boop/Boop/scripts/Test.js b/Boop/Boop/scripts/Test.js index 43132445..b4edeadc 100644 --- a/Boop/Boop/scripts/Test.js +++ b/Boop/Boop/scripts/Test.js @@ -4,7 +4,7 @@ "name":"Test Script", "description":"Testing script", "author":"Ivan", - "icon":"quote", + "icon":"flask", "tags":"test,test,one,two" } **/ diff --git a/Boop/Boop/scripts/Trim.js b/Boop/Boop/scripts/Trim.js index 93e9c65f..585fa31b 100644 --- a/Boop/Boop/scripts/Trim.js +++ b/Boop/Boop/scripts/Trim.js @@ -2,9 +2,9 @@ { "api":1, "name":"Trim", - "description":"Trims leading and trailing whitespace", + "description":"Trims leading and trailing whitespace.", "author":"Joshua Nozzi", - "icon":"trim", + "icon":"scissors", "tags":"trim,whitespace,empty,space", } **/ diff --git a/Boop/Boop/scripts/JoinLines.js b/Scripts/JoinLines.js similarity index 67% rename from Boop/Boop/scripts/JoinLines.js rename to Scripts/JoinLines.js index cc22c322..da1cf5b5 100644 --- a/Boop/Boop/scripts/JoinLines.js +++ b/Scripts/JoinLines.js @@ -2,9 +2,9 @@ { "api":1, "name":"Join Lines", - "description":"Joins All Lines Without any Delimiter", + "description":"Joins all lines without any delimiter.", "author":"riesentoaster", - "icon":"table", + "icon":"collapse", "tags":"join" } **/ diff --git a/Boop/Boop/scripts/JoinLinesWithComma.js b/Scripts/JoinLinesWithComma.js similarity index 73% rename from Boop/Boop/scripts/JoinLinesWithComma.js rename to Scripts/JoinLinesWithComma.js index 7507d336..8d6bd66a 100644 --- a/Boop/Boop/scripts/JoinLinesWithComma.js +++ b/Scripts/JoinLinesWithComma.js @@ -2,9 +2,9 @@ { "api":1, "name":"Join Lines With Comma", - "description":"Joins All Lines With a Comma", + "description":"Joins all lines with a comma.", "author":"riesentoaster", - "icon":"table", + "icon":"collapse", "tags":"join, comma", "bias": -0.1 } diff --git a/Boop/Boop/scripts/JoinLinesWithSpace.js b/Scripts/JoinLinesWithSpace.js similarity index 74% rename from Boop/Boop/scripts/JoinLinesWithSpace.js rename to Scripts/JoinLinesWithSpace.js index 091303c8..e884d1b0 100644 --- a/Boop/Boop/scripts/JoinLinesWithSpace.js +++ b/Scripts/JoinLinesWithSpace.js @@ -2,9 +2,9 @@ { "api":1, "name":"Join Lines With Space", - "description":"Joins All Lines With a Space", + "description":"Joins all lines with a space", "author":"riesentoaster", - "icon":"table", + "icon":"collapse", "tags":"join, space", "bias": -0.1 } diff --git a/Boop/Boop/scripts/TrimEnd.js b/Scripts/TrimEnd.js similarity index 75% rename from Boop/Boop/scripts/TrimEnd.js rename to Scripts/TrimEnd.js index 9222427e..16cb7d2b 100644 --- a/Boop/Boop/scripts/TrimEnd.js +++ b/Scripts/TrimEnd.js @@ -2,9 +2,9 @@ { "api":1, "name":"Trim End", - "description":"Trims trailing whitespace", + "description":"Trims trailing whitespace.", "author":"Joshua Nozzi", - "icon":"trimend", + "icon":"scissors", "tags":"trim,end,right,trailing,whitespace,empty,space", } **/ diff --git a/Boop/Boop/scripts/TrimStart.js b/Scripts/TrimStart.js similarity index 76% rename from Boop/Boop/scripts/TrimStart.js rename to Scripts/TrimStart.js index 174c1618..30e6a3ba 100644 --- a/Boop/Boop/scripts/TrimStart.js +++ b/Scripts/TrimStart.js @@ -2,9 +2,9 @@ { "api":1, "name":"Trim Start", - "description":"Trims leading whitespace", + "description":"Trims leading whitespace.", "author":"Joshua Nozzi", - "icon":"trimstart", + "icon":"scissors", "tags":"trim,start,left,leading,beginning,whitespace,empty,space", } **/ diff --git a/Boop/Boop/scripts/WkbToWkt.js b/Scripts/WkbToWkt.js similarity index 100% rename from Boop/Boop/scripts/WkbToWkt.js rename to Scripts/WkbToWkt.js diff --git a/Boop/Boop/scripts/WktToWkb.js b/Scripts/WktToWkb.js similarity index 100% rename from Boop/Boop/scripts/WktToWkb.js rename to Scripts/WktToWkb.js diff --git a/Scripts/contrastingColor.js b/Scripts/contrastingColor.js index b81b182f..50d6a7c3 100644 --- a/Scripts/contrastingColor.js +++ b/Scripts/contrastingColor.js @@ -4,7 +4,7 @@ "name": "Contrasting Color", "description": "Determine whether black or white contrasts better with the given color(s) (one per line).", "author": "Sunny Walker", - "icon": "table", + "icon": "color-wheel", "tags": "contrast,color,wcag" } **/ From ebe1dc30175b5036d227d034f887cbcd80ecc616 Mon Sep 17 00:00:00 2001 From: Ivan Mathy Date: Sun, 12 Jul 2020 14:41:34 -0500 Subject: [PATCH 02/93] More clean up --- Boop/Boop/scripts/Downcase.js | 2 +- Boop/Boop/scripts/URLDecode.js | 2 +- Boop/Boop/scripts/URLEncode.js | 2 +- Boop/Boop/scripts/Upcase.js | 2 +- Boop/Boop/scripts/Wadsworth.js | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Boop/Boop/scripts/Downcase.js b/Boop/Boop/scripts/Downcase.js index 2729b9b7..a0f54796 100644 --- a/Boop/Boop/scripts/Downcase.js +++ b/Boop/Boop/scripts/Downcase.js @@ -2,7 +2,7 @@ { "api":1, "name":"Downcase", - "description":"Converts to lowercase", + "description":"Converts your text to lowercase.", "author":"Dan2552", "icon":"type", "tags":"downcase,lowercase" diff --git a/Boop/Boop/scripts/URLDecode.js b/Boop/Boop/scripts/URLDecode.js index 42e94166..e48092e3 100644 --- a/Boop/Boop/scripts/URLDecode.js +++ b/Boop/Boop/scripts/URLDecode.js @@ -2,7 +2,7 @@ { "api":1, "name":"URL Decode", - "description":"Decodes URL entities", + "description":"Decodes URL entities in your text.", "author":"Ivan", "icon":"link", "tags":"url,decode,convert" diff --git a/Boop/Boop/scripts/URLEncode.js b/Boop/Boop/scripts/URLEncode.js index 428a7635..94ae3e99 100644 --- a/Boop/Boop/scripts/URLEncode.js +++ b/Boop/Boop/scripts/URLEncode.js @@ -2,7 +2,7 @@ { "api":1, "name":"URL Encode", - "description":"Encodes URL entities", + "description":"Encodes URL entities in your text.", "author":"Ivan", "icon":"link", "tags":"url,encode,convert" diff --git a/Boop/Boop/scripts/Upcase.js b/Boop/Boop/scripts/Upcase.js index 12fc29a3..368fc665 100644 --- a/Boop/Boop/scripts/Upcase.js +++ b/Boop/Boop/scripts/Upcase.js @@ -2,7 +2,7 @@ { "api":1, "name":"Upcase", - "description":"Converts to uppercase", + "description":"Converts your text to uppercase.", "author":"Dan2552", "icon":"type", "tags":"upcase,uppercase,capital,capitalize,capitalization" diff --git a/Boop/Boop/scripts/Wadsworth.js b/Boop/Boop/scripts/Wadsworth.js index 3439bf47..b866481f 100644 --- a/Boop/Boop/scripts/Wadsworth.js +++ b/Boop/Boop/scripts/Wadsworth.js @@ -4,7 +4,7 @@ "name":"Wadsworth Constant", "description":"first 30% of your text.", "author":"Ivan", - "icon":"broom", + "icon":"scissors", "tags":"snap" } **/ From b523d454d01e252182a53ec66a8e2433e9aa369f Mon Sep 17 00:00:00 2001 From: Ivan Mathy Date: Mon, 13 Jul 2020 19:31:33 -0500 Subject: [PATCH 03/93] More scripts cleanup --- .../Icons/icons8-globe.imageset/Contents.json | 15 +++++++++++++++ .../Icons/icons8-globe.imageset/icons8-globe.pdf | Bin 0 -> 1175 bytes {Scripts => Boop/Boop/scripts}/hex2rgb.js | 6 +++--- {Boop/Boop/scripts => Scripts}/Wadsworth.js | 0 Scripts/WkbToWkt.js | 2 +- Scripts/WktToWkb.js | 2 +- 6 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-globe.imageset/Contents.json create mode 100644 Boop/Boop/Assets.xcassets/Icons/icons8-globe.imageset/icons8-globe.pdf rename {Scripts => Boop/Boop/scripts}/hex2rgb.js (86%) rename {Boop/Boop/scripts => Scripts}/Wadsworth.js (100%) diff --git a/Boop/Boop/Assets.xcassets/Icons/icons8-globe.imageset/Contents.json b/Boop/Boop/Assets.xcassets/Icons/icons8-globe.imageset/Contents.json new file mode 100644 index 00000000..88384418 --- /dev/null +++ b/Boop/Boop/Assets.xcassets/Icons/icons8-globe.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "icons8-globe.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "template-rendering-intent" : "template" + } +} diff --git a/Boop/Boop/Assets.xcassets/Icons/icons8-globe.imageset/icons8-globe.pdf b/Boop/Boop/Assets.xcassets/Icons/icons8-globe.imageset/icons8-globe.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a9b038b70fbb3a13621bab4a46ac4daaba7e5e6b GIT binary patch literal 1175 zcma)6ZAcVB7&aq`g$T=(Ok+R}KPq?cOHaF`yi-%l>=cnSa=n|oTf1(L**QJU=mV+1 zAOsIFrNW9R@hi|DYV;>d`XUM{EUAx|q5rk_!@O#&ye6{USasr}5P7!0FaAN- zoBCMmmVr+Zs%k@rq5F&nD>}1A>qCww)U02liEOrx?@8@?JQ}*;R_W?*Bqgdhd<4OE7p$P02Mb1{!LkO#2EwJr$Q zLf!`DoP|7sPE5l5?(T;cfzK2@po~BqP-*ErEbldlPE0mSfVPLP7jls3b_LP#WtUMu z!yLx6FacFpynFSS^^LDJPR|@u^@A8Zpacfex>!UY!OROt1j=NkCRqg%>=?V!SyEO4+7R!u z3uY-NvcfdAhEXW84rDX`0GHo!X#fBK literal 0 HcmV?d00001 diff --git a/Scripts/hex2rgb.js b/Boop/Boop/scripts/hex2rgb.js similarity index 86% rename from Scripts/hex2rgb.js rename to Boop/Boop/scripts/hex2rgb.js index d0710950..6ce92b96 100644 --- a/Scripts/hex2rgb.js +++ b/Boop/Boop/scripts/hex2rgb.js @@ -1,11 +1,11 @@ /** { "api":1, - "name":"HEX2RGB", + "name":"Hex to RGB", "description":"Convert color in hexadecimal to RGB.", "author":"Venkat", - "icon":"table", - "tags":"flip" + "icon":"color-wheel", + "tags":"hex,color,rgb,convert" } **/ diff --git a/Boop/Boop/scripts/Wadsworth.js b/Scripts/Wadsworth.js similarity index 100% rename from Boop/Boop/scripts/Wadsworth.js rename to Scripts/Wadsworth.js diff --git a/Scripts/WkbToWkt.js b/Scripts/WkbToWkt.js index 8e11701e..9dfaae4d 100644 --- a/Scripts/WkbToWkt.js +++ b/Scripts/WkbToWkt.js @@ -4,7 +4,7 @@ "name":"Well-Known Binary to Text", "description":"Converts your hex encoded WKB (any endian) to WKB, wkb2wkt", "author":"Mikael Brassman (Twitter: @spoike)", - "icon":"metamorphose", + "icon":"globe", "tags":"wkb,convert,wkt,binary,hex,wkb2wkt" } **/ diff --git a/Scripts/WktToWkb.js b/Scripts/WktToWkb.js index 3961f6ca..e3379de5 100644 --- a/Scripts/WktToWkb.js +++ b/Scripts/WktToWkb.js @@ -4,7 +4,7 @@ "name":"Well-Known Text to Binary", "description":"Converts your WKT to little endian WKB (hex encoded), wkt2wkb", "author":"Mikael Brassman (Twitter: @spoike)", - "icon":"metamorphose", + "icon":"globe", "tags":"wkb,convert,wkt,binary,little endian,hex,wkt2wkb" } **/ From 8a67cc82f910bac95c6c18c21afcff315f215996 Mon Sep 17 00:00:00 2001 From: Ivan Mathy Date: Mon, 13 Jul 2020 19:43:28 -0500 Subject: [PATCH 04/93] Replaced URLs --- Boop/Boop/Controllers/MainViewController.swift | 4 ++-- .../Preferences/ScriptsSettingsViewController.swift | 2 +- README.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Boop/Boop/Controllers/MainViewController.swift b/Boop/Boop/Controllers/MainViewController.swift index a6cede71..762b7f49 100644 --- a/Boop/Boop/Controllers/MainViewController.swift +++ b/Boop/Boop/Controllers/MainViewController.swift @@ -30,12 +30,12 @@ class MainViewController: NSViewController { } @IBAction func openHelp(_ sender: Any) { - open(url: "https://github.com/IvanMathy/Boop/blob/master/Boop/Documentation/Readme.md") + open(url: "https://boop.okat.best/docs/") } @IBAction func openScripts(_ sender: Any) { - open(url: "https://github.com/IvanMathy/Boop/tree/main/Scripts") + open(url: "https://boop.okat.best/scripts/") } diff --git a/Boop/Boop/Controllers/Preferences/ScriptsSettingsViewController.swift b/Boop/Boop/Controllers/Preferences/ScriptsSettingsViewController.swift index 3a727774..1aca2e39 100644 --- a/Boop/Boop/Controllers/Preferences/ScriptsSettingsViewController.swift +++ b/Boop/Boop/Controllers/Preferences/ScriptsSettingsViewController.swift @@ -54,7 +54,7 @@ class ScriptsSettingsViewController: NSViewController { @IBAction func didClickHelpButton(_ sender: Any) { - guard let url = URL(string: "https://github.com/IvanMathy/Boop/blob/master/Boop/Documentation/CustomScripts.md#custom-scripts") else { + guard let url = URL(string: "https://boop.okat.best/docs/scripts") else { assertionFailure("Could not generate help URL.") return } diff --git a/README.md b/README.md index 602c8a42..51718966 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@

- +

From 3215eca60712ed09971317a2fd9d21b325b91d92 Mon Sep 17 00:00:00 2001 From: Dennis Menge Date: Wed, 17 Jun 2020 20:16:06 +0200 Subject: [PATCH 05/93] Added SHA1, SHA256, and SHA512 algorithms like done for MD5 --- Boop/Boop/scripts/SHA1.js | 344 ++++++++++++++++++++++++ Boop/Boop/scripts/SHA256.js | 352 +++++++++++++++++++++++++ Boop/Boop/scripts/SHA512.js | 510 ++++++++++++++++++++++++++++++++++++ 3 files changed, 1206 insertions(+) create mode 100644 Boop/Boop/scripts/SHA1.js create mode 100644 Boop/Boop/scripts/SHA256.js create mode 100644 Boop/Boop/scripts/SHA512.js diff --git a/Boop/Boop/scripts/SHA1.js b/Boop/Boop/scripts/SHA1.js new file mode 100644 index 00000000..7242b344 --- /dev/null +++ b/Boop/Boop/scripts/SHA1.js @@ -0,0 +1,344 @@ +/** + { + "api":1, + "name":"SHA1 Hash", + "description":"Computes the SHA1 hash of your text", + "icon":"fingerprint", + "tags":"strip,slashes,remove" + } +**/ + +function main(state) { + state.text = hex_sha1(state.text) +} + +/* + * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined + * in FIPS 180-1 + * Version 2.2 Copyright Paul Johnston 2000 - 2009. + * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet + * Distributed under the BSD License + * See http://pajhome.org.uk/crypt/md5 for details. + */ + +/* + * Configurable variables. You may need to tweak these to be compatible with + * the server-side, but the defaults work in most cases. + */ +var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ +var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */ + +/* + * These are the functions you'll usually want to call + * They take string arguments and return either hex or base-64 encoded strings + */ +function hex_sha1(s) { return rstr2hex(rstr_sha1(str2rstr_utf8(s))); } +function b64_sha1(s) { return rstr2b64(rstr_sha1(str2rstr_utf8(s))); } +function any_sha1(s, e) { return rstr2any(rstr_sha1(str2rstr_utf8(s)), e); } +function hex_hmac_sha1(k, d) + { return rstr2hex(rstr_hmac_sha1(str2rstr_utf8(k), str2rstr_utf8(d))); } +function b64_hmac_sha1(k, d) + { return rstr2b64(rstr_hmac_sha1(str2rstr_utf8(k), str2rstr_utf8(d))); } +function any_hmac_sha1(k, d, e) + { return rstr2any(rstr_hmac_sha1(str2rstr_utf8(k), str2rstr_utf8(d)), e); } + +/* + * Perform a simple self-test to see if the VM is working + */ +function sha1_vm_test() +{ + return hex_sha1("abc").toLowerCase() == "a9993e364706816aba3e25717850c26c9cd0d89d"; +} + +/* + * Calculate the SHA1 of a raw string + */ +function rstr_sha1(s) +{ + return binb2rstr(binb_sha1(rstr2binb(s), s.length * 8)); +} + +/* + * Calculate the HMAC-SHA1 of a key and some data (raw strings) + */ +function rstr_hmac_sha1(key, data) +{ + var bkey = rstr2binb(key); + if(bkey.length > 16) bkey = binb_sha1(bkey, key.length * 8); + + var ipad = Array(16), opad = Array(16); + for(var i = 0; i < 16; i++) + { + ipad[i] = bkey[i] ^ 0x36363636; + opad[i] = bkey[i] ^ 0x5C5C5C5C; + } + + var hash = binb_sha1(ipad.concat(rstr2binb(data)), 512 + data.length * 8); + return binb2rstr(binb_sha1(opad.concat(hash), 512 + 160)); +} + +/* + * Convert a raw string to a hex string + */ +function rstr2hex(input) +{ + try { hexcase } catch(e) { hexcase=0; } + var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; + var output = ""; + var x; + for(var i = 0; i < input.length; i++) + { + x = input.charCodeAt(i); + output += hex_tab.charAt((x >>> 4) & 0x0F) + + hex_tab.charAt( x & 0x0F); + } + return output; +} + +/* + * Convert a raw string to a base-64 string + */ +function rstr2b64(input) +{ + try { b64pad } catch(e) { b64pad=''; } + var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + var output = ""; + var len = input.length; + for(var i = 0; i < len; i += 3) + { + var triplet = (input.charCodeAt(i) << 16) + | (i + 1 < len ? input.charCodeAt(i+1) << 8 : 0) + | (i + 2 < len ? input.charCodeAt(i+2) : 0); + for(var j = 0; j < 4; j++) + { + if(i * 8 + j * 6 > input.length * 8) output += b64pad; + else output += tab.charAt((triplet >>> 6*(3-j)) & 0x3F); + } + } + return output; +} + +/* + * Convert a raw string to an arbitrary string encoding + */ +function rstr2any(input, encoding) +{ + var divisor = encoding.length; + var remainders = Array(); + var i, q, x, quotient; + + /* Convert to an array of 16-bit big-endian values, forming the dividend */ + var dividend = Array(Math.ceil(input.length / 2)); + for(i = 0; i < dividend.length; i++) + { + dividend[i] = (input.charCodeAt(i * 2) << 8) | input.charCodeAt(i * 2 + 1); + } + + /* + * Repeatedly perform a long division. The binary array forms the dividend, + * the length of the encoding is the divisor. Once computed, the quotient + * forms the dividend for the next step. We stop when the dividend is zero. + * All remainders are stored for later use. + */ + while(dividend.length > 0) + { + quotient = Array(); + x = 0; + for(i = 0; i < dividend.length; i++) + { + x = (x << 16) + dividend[i]; + q = Math.floor(x / divisor); + x -= q * divisor; + if(quotient.length > 0 || q > 0) + quotient[quotient.length] = q; + } + remainders[remainders.length] = x; + dividend = quotient; + } + + /* Convert the remainders to the output string */ + var output = ""; + for(i = remainders.length - 1; i >= 0; i--) + output += encoding.charAt(remainders[i]); + + /* Append leading zero equivalents */ + var full_length = Math.ceil(input.length * 8 / + (Math.log(encoding.length) / Math.log(2))) + for(i = output.length; i < full_length; i++) + output = encoding[0] + output; + + return output; +} + +/* + * Encode a string as utf-8. + * For efficiency, this assumes the input is valid utf-16. + */ +function str2rstr_utf8(input) +{ + var output = ""; + var i = -1; + var x, y; + + while(++i < input.length) + { + /* Decode utf-16 surrogate pairs */ + x = input.charCodeAt(i); + y = i + 1 < input.length ? input.charCodeAt(i + 1) : 0; + if(0xD800 <= x && x <= 0xDBFF && 0xDC00 <= y && y <= 0xDFFF) + { + x = 0x10000 + ((x & 0x03FF) << 10) + (y & 0x03FF); + i++; + } + + /* Encode output as utf-8 */ + if(x <= 0x7F) + output += String.fromCharCode(x); + else if(x <= 0x7FF) + output += String.fromCharCode(0xC0 | ((x >>> 6 ) & 0x1F), + 0x80 | ( x & 0x3F)); + else if(x <= 0xFFFF) + output += String.fromCharCode(0xE0 | ((x >>> 12) & 0x0F), + 0x80 | ((x >>> 6 ) & 0x3F), + 0x80 | ( x & 0x3F)); + else if(x <= 0x1FFFFF) + output += String.fromCharCode(0xF0 | ((x >>> 18) & 0x07), + 0x80 | ((x >>> 12) & 0x3F), + 0x80 | ((x >>> 6 ) & 0x3F), + 0x80 | ( x & 0x3F)); + } + return output; +} + +/* + * Encode a string as utf-16 + */ +function str2rstr_utf16le(input) +{ + var output = ""; + for(var i = 0; i < input.length; i++) + output += String.fromCharCode( input.charCodeAt(i) & 0xFF, + (input.charCodeAt(i) >>> 8) & 0xFF); + return output; +} + +function str2rstr_utf16be(input) +{ + var output = ""; + for(var i = 0; i < input.length; i++) + output += String.fromCharCode((input.charCodeAt(i) >>> 8) & 0xFF, + input.charCodeAt(i) & 0xFF); + return output; +} + +/* + * Convert a raw string to an array of big-endian words + * Characters >255 have their high-byte silently ignored. + */ +function rstr2binb(input) +{ + var output = Array(input.length >> 2); + for(var i = 0; i < output.length; i++) + output[i] = 0; + for(var i = 0; i < input.length * 8; i += 8) + output[i>>5] |= (input.charCodeAt(i / 8) & 0xFF) << (24 - i % 32); + return output; +} + +/* + * Convert an array of big-endian words to a string + */ +function binb2rstr(input) +{ + var output = ""; + for(var i = 0; i < input.length * 32; i += 8) + output += String.fromCharCode((input[i>>5] >>> (24 - i % 32)) & 0xFF); + return output; +} + +/* + * Calculate the SHA-1 of an array of big-endian words, and a bit length + */ +function binb_sha1(x, len) +{ + /* append padding */ + x[len >> 5] |= 0x80 << (24 - len % 32); + x[((len + 64 >> 9) << 4) + 15] = len; + + var w = Array(80); + var a = 1732584193; + var b = -271733879; + var c = -1732584194; + var d = 271733878; + var e = -1009589776; + + for(var i = 0; i < x.length; i += 16) + { + var olda = a; + var oldb = b; + var oldc = c; + var oldd = d; + var olde = e; + + for(var j = 0; j < 80; j++) + { + if(j < 16) w[j] = x[i + j]; + else w[j] = bit_rol(w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16], 1); + var t = safe_add(safe_add(bit_rol(a, 5), sha1_ft(j, b, c, d)), + safe_add(safe_add(e, w[j]), sha1_kt(j))); + e = d; + d = c; + c = bit_rol(b, 30); + b = a; + a = t; + } + + a = safe_add(a, olda); + b = safe_add(b, oldb); + c = safe_add(c, oldc); + d = safe_add(d, oldd); + e = safe_add(e, olde); + } + return Array(a, b, c, d, e); + +} + +/* + * Perform the appropriate triplet combination function for the current + * iteration + */ +function sha1_ft(t, b, c, d) +{ + if(t < 20) return (b & c) | ((~b) & d); + if(t < 40) return b ^ c ^ d; + if(t < 60) return (b & c) | (b & d) | (c & d); + return b ^ c ^ d; +} + +/* + * Determine the appropriate additive constant for the current iteration + */ +function sha1_kt(t) +{ + return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 : + (t < 60) ? -1894007588 : -899497514; +} + +/* + * Add integers, wrapping at 2^32. This uses 16-bit operations internally + * to work around bugs in some JS interpreters. + */ +function safe_add(x, y) +{ + var lsw = (x & 0xFFFF) + (y & 0xFFFF); + var msw = (x >> 16) + (y >> 16) + (lsw >> 16); + return (msw << 16) | (lsw & 0xFFFF); +} + +/* + * Bitwise rotate a 32-bit number to the left. + */ +function bit_rol(num, cnt) +{ + return (num << cnt) | (num >>> (32 - cnt)); +} \ No newline at end of file diff --git a/Boop/Boop/scripts/SHA256.js b/Boop/Boop/scripts/SHA256.js new file mode 100644 index 00000000..a7b0e4b4 --- /dev/null +++ b/Boop/Boop/scripts/SHA256.js @@ -0,0 +1,352 @@ +/** + { + "api":1, + "name":"SHA256 Hash", + "description":"Computes the SHA256 hash of your text", + "icon":"fingerprint", + "tags":"strip,slashes,remove" + } +**/ + +function main(state) { + state.text = hex_sha256(state.text) +} + + +/* + * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined + * in FIPS 180-2 + * Version 2.2 Copyright Angel Marin, Paul Johnston 2000 - 2009. + * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet + * Distributed under the BSD License + * See http://pajhome.org.uk/crypt/md5 for details. + * Also http://anmar.eu.org/projects/jssha2/ + */ + +/* + * Configurable variables. You may need to tweak these to be compatible with + * the server-side, but the defaults work in most cases. + */ +var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ +var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */ + +/* + * These are the functions you'll usually want to call + * They take string arguments and return either hex or base-64 encoded strings + */ +function hex_sha256(s) { return rstr2hex(rstr_sha256(str2rstr_utf8(s))); } +function b64_sha256(s) { return rstr2b64(rstr_sha256(str2rstr_utf8(s))); } +function any_sha256(s, e) { return rstr2any(rstr_sha256(str2rstr_utf8(s)), e); } +function hex_hmac_sha256(k, d) + { return rstr2hex(rstr_hmac_sha256(str2rstr_utf8(k), str2rstr_utf8(d))); } +function b64_hmac_sha256(k, d) + { return rstr2b64(rstr_hmac_sha256(str2rstr_utf8(k), str2rstr_utf8(d))); } +function any_hmac_sha256(k, d, e) + { return rstr2any(rstr_hmac_sha256(str2rstr_utf8(k), str2rstr_utf8(d)), e); } + +/* + * Perform a simple self-test to see if the VM is working + */ +function sha256_vm_test() +{ + return hex_sha256("abc").toLowerCase() == + "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"; +} + +/* + * Calculate the sha256 of a raw string + */ +function rstr_sha256(s) +{ + return binb2rstr(binb_sha256(rstr2binb(s), s.length * 8)); +} + +/* + * Calculate the HMAC-sha256 of a key and some data (raw strings) + */ +function rstr_hmac_sha256(key, data) +{ + var bkey = rstr2binb(key); + if(bkey.length > 16) bkey = binb_sha256(bkey, key.length * 8); + + var ipad = Array(16), opad = Array(16); + for(var i = 0; i < 16; i++) + { + ipad[i] = bkey[i] ^ 0x36363636; + opad[i] = bkey[i] ^ 0x5C5C5C5C; + } + + var hash = binb_sha256(ipad.concat(rstr2binb(data)), 512 + data.length * 8); + return binb2rstr(binb_sha256(opad.concat(hash), 512 + 256)); +} + +/* + * Convert a raw string to a hex string + */ +function rstr2hex(input) +{ + try { hexcase } catch(e) { hexcase=0; } + var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; + var output = ""; + var x; + for(var i = 0; i < input.length; i++) + { + x = input.charCodeAt(i); + output += hex_tab.charAt((x >>> 4) & 0x0F) + + hex_tab.charAt( x & 0x0F); + } + return output; +} + +/* + * Convert a raw string to a base-64 string + */ +function rstr2b64(input) +{ + try { b64pad } catch(e) { b64pad=''; } + var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + var output = ""; + var len = input.length; + for(var i = 0; i < len; i += 3) + { + var triplet = (input.charCodeAt(i) << 16) + | (i + 1 < len ? input.charCodeAt(i+1) << 8 : 0) + | (i + 2 < len ? input.charCodeAt(i+2) : 0); + for(var j = 0; j < 4; j++) + { + if(i * 8 + j * 6 > input.length * 8) output += b64pad; + else output += tab.charAt((triplet >>> 6*(3-j)) & 0x3F); + } + } + return output; +} + +/* + * Convert a raw string to an arbitrary string encoding + */ +function rstr2any(input, encoding) +{ + var divisor = encoding.length; + var remainders = Array(); + var i, q, x, quotient; + + /* Convert to an array of 16-bit big-endian values, forming the dividend */ + var dividend = Array(Math.ceil(input.length / 2)); + for(i = 0; i < dividend.length; i++) + { + dividend[i] = (input.charCodeAt(i * 2) << 8) | input.charCodeAt(i * 2 + 1); + } + + /* + * Repeatedly perform a long division. The binary array forms the dividend, + * the length of the encoding is the divisor. Once computed, the quotient + * forms the dividend for the next step. We stop when the dividend is zero. + * All remainders are stored for later use. + */ + while(dividend.length > 0) + { + quotient = Array(); + x = 0; + for(i = 0; i < dividend.length; i++) + { + x = (x << 16) + dividend[i]; + q = Math.floor(x / divisor); + x -= q * divisor; + if(quotient.length > 0 || q > 0) + quotient[quotient.length] = q; + } + remainders[remainders.length] = x; + dividend = quotient; + } + + /* Convert the remainders to the output string */ + var output = ""; + for(i = remainders.length - 1; i >= 0; i--) + output += encoding.charAt(remainders[i]); + + /* Append leading zero equivalents */ + var full_length = Math.ceil(input.length * 8 / + (Math.log(encoding.length) / Math.log(2))) + for(i = output.length; i < full_length; i++) + output = encoding[0] + output; + + return output; +} + +/* + * Encode a string as utf-8. + * For efficiency, this assumes the input is valid utf-16. + */ +function str2rstr_utf8(input) +{ + var output = ""; + var i = -1; + var x, y; + + while(++i < input.length) + { + /* Decode utf-16 surrogate pairs */ + x = input.charCodeAt(i); + y = i + 1 < input.length ? input.charCodeAt(i + 1) : 0; + if(0xD800 <= x && x <= 0xDBFF && 0xDC00 <= y && y <= 0xDFFF) + { + x = 0x10000 + ((x & 0x03FF) << 10) + (y & 0x03FF); + i++; + } + + /* Encode output as utf-8 */ + if(x <= 0x7F) + output += String.fromCharCode(x); + else if(x <= 0x7FF) + output += String.fromCharCode(0xC0 | ((x >>> 6 ) & 0x1F), + 0x80 | ( x & 0x3F)); + else if(x <= 0xFFFF) + output += String.fromCharCode(0xE0 | ((x >>> 12) & 0x0F), + 0x80 | ((x >>> 6 ) & 0x3F), + 0x80 | ( x & 0x3F)); + else if(x <= 0x1FFFFF) + output += String.fromCharCode(0xF0 | ((x >>> 18) & 0x07), + 0x80 | ((x >>> 12) & 0x3F), + 0x80 | ((x >>> 6 ) & 0x3F), + 0x80 | ( x & 0x3F)); + } + return output; +} + +/* + * Encode a string as utf-16 + */ +function str2rstr_utf16le(input) +{ + var output = ""; + for(var i = 0; i < input.length; i++) + output += String.fromCharCode( input.charCodeAt(i) & 0xFF, + (input.charCodeAt(i) >>> 8) & 0xFF); + return output; +} + +function str2rstr_utf16be(input) +{ + var output = ""; + for(var i = 0; i < input.length; i++) + output += String.fromCharCode((input.charCodeAt(i) >>> 8) & 0xFF, + input.charCodeAt(i) & 0xFF); + return output; +} + +/* + * Convert a raw string to an array of big-endian words + * Characters >255 have their high-byte silently ignored. + */ +function rstr2binb(input) +{ + var output = Array(input.length >> 2); + for(var i = 0; i < output.length; i++) + output[i] = 0; + for(var i = 0; i < input.length * 8; i += 8) + output[i>>5] |= (input.charCodeAt(i / 8) & 0xFF) << (24 - i % 32); + return output; +} + +/* + * Convert an array of big-endian words to a string + */ +function binb2rstr(input) +{ + var output = ""; + for(var i = 0; i < input.length * 32; i += 8) + output += String.fromCharCode((input[i>>5] >>> (24 - i % 32)) & 0xFF); + return output; +} + +/* + * Main sha256 function, with its support functions + */ +function sha256_S (X, n) {return ( X >>> n ) | (X << (32 - n));} +function sha256_R (X, n) {return ( X >>> n );} +function sha256_Ch(x, y, z) {return ((x & y) ^ ((~x) & z));} +function sha256_Maj(x, y, z) {return ((x & y) ^ (x & z) ^ (y & z));} +function sha256_Sigma0256(x) {return (sha256_S(x, 2) ^ sha256_S(x, 13) ^ sha256_S(x, 22));} +function sha256_Sigma1256(x) {return (sha256_S(x, 6) ^ sha256_S(x, 11) ^ sha256_S(x, 25));} +function sha256_Gamma0256(x) {return (sha256_S(x, 7) ^ sha256_S(x, 18) ^ sha256_R(x, 3));} +function sha256_Gamma1256(x) {return (sha256_S(x, 17) ^ sha256_S(x, 19) ^ sha256_R(x, 10));} +function sha256_Sigma0512(x) {return (sha256_S(x, 28) ^ sha256_S(x, 34) ^ sha256_S(x, 39));} +function sha256_Sigma1512(x) {return (sha256_S(x, 14) ^ sha256_S(x, 18) ^ sha256_S(x, 41));} +function sha256_Gamma0512(x) {return (sha256_S(x, 1) ^ sha256_S(x, 8) ^ sha256_R(x, 7));} +function sha256_Gamma1512(x) {return (sha256_S(x, 19) ^ sha256_S(x, 61) ^ sha256_R(x, 6));} + +var sha256_K = new Array +( + 1116352408, 1899447441, -1245643825, -373957723, 961987163, 1508970993, + -1841331548, -1424204075, -670586216, 310598401, 607225278, 1426881987, + 1925078388, -2132889090, -1680079193, -1046744716, -459576895, -272742522, + 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, + -1740746414, -1473132947, -1341970488, -1084653625, -958395405, -710438585, + 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, + 1695183700, 1986661051, -2117940946, -1838011259, -1564481375, -1474664885, + -1035236496, -949202525, -778901479, -694614492, -200395387, 275423344, + 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, + 1537002063, 1747873779, 1955562222, 2024104815, -2067236844, -1933114872, + -1866530822, -1538233109, -1090935817, -965641998 +); + +function binb_sha256(m, l) +{ + var HASH = new Array(1779033703, -1150833019, 1013904242, -1521486534, + 1359893119, -1694144372, 528734635, 1541459225); + var W = new Array(64); + var a, b, c, d, e, f, g, h; + var i, j, T1, T2; + + /* append padding */ + m[l >> 5] |= 0x80 << (24 - l % 32); + m[((l + 64 >> 9) << 4) + 15] = l; + + for(i = 0; i < m.length; i += 16) + { + a = HASH[0]; + b = HASH[1]; + c = HASH[2]; + d = HASH[3]; + e = HASH[4]; + f = HASH[5]; + g = HASH[6]; + h = HASH[7]; + + for(j = 0; j < 64; j++) + { + if (j < 16) W[j] = m[j + i]; + else W[j] = safe_add(safe_add(safe_add(sha256_Gamma1256(W[j - 2]), W[j - 7]), + sha256_Gamma0256(W[j - 15])), W[j - 16]); + + T1 = safe_add(safe_add(safe_add(safe_add(h, sha256_Sigma1256(e)), sha256_Ch(e, f, g)), + sha256_K[j]), W[j]); + T2 = safe_add(sha256_Sigma0256(a), sha256_Maj(a, b, c)); + h = g; + g = f; + f = e; + e = safe_add(d, T1); + d = c; + c = b; + b = a; + a = safe_add(T1, T2); + } + + HASH[0] = safe_add(a, HASH[0]); + HASH[1] = safe_add(b, HASH[1]); + HASH[2] = safe_add(c, HASH[2]); + HASH[3] = safe_add(d, HASH[3]); + HASH[4] = safe_add(e, HASH[4]); + HASH[5] = safe_add(f, HASH[5]); + HASH[6] = safe_add(g, HASH[6]); + HASH[7] = safe_add(h, HASH[7]); + } + return HASH; +} + +function safe_add (x, y) +{ + var lsw = (x & 0xFFFF) + (y & 0xFFFF); + var msw = (x >> 16) + (y >> 16) + (lsw >> 16); + return (msw << 16) | (lsw & 0xFFFF); +} diff --git a/Boop/Boop/scripts/SHA512.js b/Boop/Boop/scripts/SHA512.js new file mode 100644 index 00000000..be65fb24 --- /dev/null +++ b/Boop/Boop/scripts/SHA512.js @@ -0,0 +1,510 @@ +/** + { + "api":1, + "name":"SHA512 Hash", + "description":"Computes the SHA512 hash of your text", + "icon":"fingerprint", + "tags":"strip,slashes,remove" + } +**/ + +function main(state) { + state.text = hex_sha512(state.text) +} + +/* + * A JavaScript implementation of the Secure Hash Algorithm, SHA-512, as defined + * in FIPS 180-2 + * Version 2.2 Copyright Anonymous Contributor, Paul Johnston 2000 - 2009. + * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet + * Distributed under the BSD License + * See http://pajhome.org.uk/crypt/md5 for details. + */ + +/* + * Configurable variables. You may need to tweak these to be compatible with + * the server-side, but the defaults work in most cases. + */ +var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ +var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */ + +/* + * These are the functions you'll usually want to call + * They take string arguments and return either hex or base-64 encoded strings + */ +function hex_sha512(s) { return rstr2hex(rstr_sha512(str2rstr_utf8(s))); } +function b64_sha512(s) { return rstr2b64(rstr_sha512(str2rstr_utf8(s))); } +function any_sha512(s, e) { return rstr2any(rstr_sha512(str2rstr_utf8(s)), e);} +function hex_hmac_sha512(k, d) + { return rstr2hex(rstr_hmac_sha512(str2rstr_utf8(k), str2rstr_utf8(d))); } +function b64_hmac_sha512(k, d) + { return rstr2b64(rstr_hmac_sha512(str2rstr_utf8(k), str2rstr_utf8(d))); } +function any_hmac_sha512(k, d, e) + { return rstr2any(rstr_hmac_sha512(str2rstr_utf8(k), str2rstr_utf8(d)), e);} + +/* + * Perform a simple self-test to see if the VM is working + */ +function sha512_vm_test() +{ + return hex_sha512("abc").toLowerCase() == + "ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a" + + "2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f"; +} + +/* + * Calculate the SHA-512 of a raw string + */ +function rstr_sha512(s) +{ + return binb2rstr(binb_sha512(rstr2binb(s), s.length * 8)); +} + +/* + * Calculate the HMAC-SHA-512 of a key and some data (raw strings) + */ +function rstr_hmac_sha512(key, data) +{ + var bkey = rstr2binb(key); + if(bkey.length > 32) bkey = binb_sha512(bkey, key.length * 8); + + var ipad = Array(32), opad = Array(32); + for(var i = 0; i < 32; i++) + { + ipad[i] = bkey[i] ^ 0x36363636; + opad[i] = bkey[i] ^ 0x5C5C5C5C; + } + + var hash = binb_sha512(ipad.concat(rstr2binb(data)), 1024 + data.length * 8); + return binb2rstr(binb_sha512(opad.concat(hash), 1024 + 512)); +} + +/* + * Convert a raw string to a hex string + */ +function rstr2hex(input) +{ + try { hexcase } catch(e) { hexcase=0; } + var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; + var output = ""; + var x; + for(var i = 0; i < input.length; i++) + { + x = input.charCodeAt(i); + output += hex_tab.charAt((x >>> 4) & 0x0F) + + hex_tab.charAt( x & 0x0F); + } + return output; +} + +/* + * Convert a raw string to a base-64 string + */ +function rstr2b64(input) +{ + try { b64pad } catch(e) { b64pad=''; } + var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + var output = ""; + var len = input.length; + for(var i = 0; i < len; i += 3) + { + var triplet = (input.charCodeAt(i) << 16) + | (i + 1 < len ? input.charCodeAt(i+1) << 8 : 0) + | (i + 2 < len ? input.charCodeAt(i+2) : 0); + for(var j = 0; j < 4; j++) + { + if(i * 8 + j * 6 > input.length * 8) output += b64pad; + else output += tab.charAt((triplet >>> 6*(3-j)) & 0x3F); + } + } + return output; +} + +/* + * Convert a raw string to an arbitrary string encoding + */ +function rstr2any(input, encoding) +{ + var divisor = encoding.length; + var i, j, q, x, quotient; + + /* Convert to an array of 16-bit big-endian values, forming the dividend */ + var dividend = Array(Math.ceil(input.length / 2)); + for(i = 0; i < dividend.length; i++) + { + dividend[i] = (input.charCodeAt(i * 2) << 8) | input.charCodeAt(i * 2 + 1); + } + + /* + * Repeatedly perform a long division. The binary array forms the dividend, + * the length of the encoding is the divisor. Once computed, the quotient + * forms the dividend for the next step. All remainders are stored for later + * use. + */ + var full_length = Math.ceil(input.length * 8 / + (Math.log(encoding.length) / Math.log(2))); + var remainders = Array(full_length); + for(j = 0; j < full_length; j++) + { + quotient = Array(); + x = 0; + for(i = 0; i < dividend.length; i++) + { + x = (x << 16) + dividend[i]; + q = Math.floor(x / divisor); + x -= q * divisor; + if(quotient.length > 0 || q > 0) + quotient[quotient.length] = q; + } + remainders[j] = x; + dividend = quotient; + } + + /* Convert the remainders to the output string */ + var output = ""; + for(i = remainders.length - 1; i >= 0; i--) + output += encoding.charAt(remainders[i]); + + return output; +} + +/* + * Encode a string as utf-8. + * For efficiency, this assumes the input is valid utf-16. + */ +function str2rstr_utf8(input) +{ + var output = ""; + var i = -1; + var x, y; + + while(++i < input.length) + { + /* Decode utf-16 surrogate pairs */ + x = input.charCodeAt(i); + y = i + 1 < input.length ? input.charCodeAt(i + 1) : 0; + if(0xD800 <= x && x <= 0xDBFF && 0xDC00 <= y && y <= 0xDFFF) + { + x = 0x10000 + ((x & 0x03FF) << 10) + (y & 0x03FF); + i++; + } + + /* Encode output as utf-8 */ + if(x <= 0x7F) + output += String.fromCharCode(x); + else if(x <= 0x7FF) + output += String.fromCharCode(0xC0 | ((x >>> 6 ) & 0x1F), + 0x80 | ( x & 0x3F)); + else if(x <= 0xFFFF) + output += String.fromCharCode(0xE0 | ((x >>> 12) & 0x0F), + 0x80 | ((x >>> 6 ) & 0x3F), + 0x80 | ( x & 0x3F)); + else if(x <= 0x1FFFFF) + output += String.fromCharCode(0xF0 | ((x >>> 18) & 0x07), + 0x80 | ((x >>> 12) & 0x3F), + 0x80 | ((x >>> 6 ) & 0x3F), + 0x80 | ( x & 0x3F)); + } + return output; +} + +/* + * Encode a string as utf-16 + */ +function str2rstr_utf16le(input) +{ + var output = ""; + for(var i = 0; i < input.length; i++) + output += String.fromCharCode( input.charCodeAt(i) & 0xFF, + (input.charCodeAt(i) >>> 8) & 0xFF); + return output; +} + +function str2rstr_utf16be(input) +{ + var output = ""; + for(var i = 0; i < input.length; i++) + output += String.fromCharCode((input.charCodeAt(i) >>> 8) & 0xFF, + input.charCodeAt(i) & 0xFF); + return output; +} + +/* + * Convert a raw string to an array of big-endian words + * Characters >255 have their high-byte silently ignored. + */ +function rstr2binb(input) +{ + var output = Array(input.length >> 2); + for(var i = 0; i < output.length; i++) + output[i] = 0; + for(var i = 0; i < input.length * 8; i += 8) + output[i>>5] |= (input.charCodeAt(i / 8) & 0xFF) << (24 - i % 32); + return output; +} + +/* + * Convert an array of big-endian words to a string + */ +function binb2rstr(input) +{ + var output = ""; + for(var i = 0; i < input.length * 32; i += 8) + output += String.fromCharCode((input[i>>5] >>> (24 - i % 32)) & 0xFF); + return output; +} + +/* + * Calculate the SHA-512 of an array of big-endian dwords, and a bit length + */ +var sha512_k; +function binb_sha512(x, len) +{ + if(sha512_k == undefined) + { + //SHA512 constants + sha512_k = new Array( +new int64(0x428a2f98, -685199838), new int64(0x71374491, 0x23ef65cd), +new int64(-1245643825, -330482897), new int64(-373957723, -2121671748), +new int64(0x3956c25b, -213338824), new int64(0x59f111f1, -1241133031), +new int64(-1841331548, -1357295717), new int64(-1424204075, -630357736), +new int64(-670586216, -1560083902), new int64(0x12835b01, 0x45706fbe), +new int64(0x243185be, 0x4ee4b28c), new int64(0x550c7dc3, -704662302), +new int64(0x72be5d74, -226784913), new int64(-2132889090, 0x3b1696b1), +new int64(-1680079193, 0x25c71235), new int64(-1046744716, -815192428), +new int64(-459576895, -1628353838), new int64(-272742522, 0x384f25e3), +new int64(0xfc19dc6, -1953704523), new int64(0x240ca1cc, 0x77ac9c65), +new int64(0x2de92c6f, 0x592b0275), new int64(0x4a7484aa, 0x6ea6e483), +new int64(0x5cb0a9dc, -1119749164), new int64(0x76f988da, -2096016459), +new int64(-1740746414, -295247957), new int64(-1473132947, 0x2db43210), +new int64(-1341970488, -1728372417), new int64(-1084653625, -1091629340), +new int64(-958395405, 0x3da88fc2), new int64(-710438585, -1828018395), +new int64(0x6ca6351, -536640913), new int64(0x14292967, 0xa0e6e70), +new int64(0x27b70a85, 0x46d22ffc), new int64(0x2e1b2138, 0x5c26c926), +new int64(0x4d2c6dfc, 0x5ac42aed), new int64(0x53380d13, -1651133473), +new int64(0x650a7354, -1951439906), new int64(0x766a0abb, 0x3c77b2a8), +new int64(-2117940946, 0x47edaee6), new int64(-1838011259, 0x1482353b), +new int64(-1564481375, 0x4cf10364), new int64(-1474664885, -1136513023), +new int64(-1035236496, -789014639), new int64(-949202525, 0x654be30), +new int64(-778901479, -688958952), new int64(-694614492, 0x5565a910), +new int64(-200395387, 0x5771202a), new int64(0x106aa070, 0x32bbd1b8), +new int64(0x19a4c116, -1194143544), new int64(0x1e376c08, 0x5141ab53), +new int64(0x2748774c, -544281703), new int64(0x34b0bcb5, -509917016), +new int64(0x391c0cb3, -976659869), new int64(0x4ed8aa4a, -482243893), +new int64(0x5b9cca4f, 0x7763e373), new int64(0x682e6ff3, -692930397), +new int64(0x748f82ee, 0x5defb2fc), new int64(0x78a5636f, 0x43172f60), +new int64(-2067236844, -1578062990), new int64(-1933114872, 0x1a6439ec), +new int64(-1866530822, 0x23631e28), new int64(-1538233109, -561857047), +new int64(-1090935817, -1295615723), new int64(-965641998, -479046869), +new int64(-903397682, -366583396), new int64(-779700025, 0x21c0c207), +new int64(-354779690, -840897762), new int64(-176337025, -294727304), +new int64(0x6f067aa, 0x72176fba), new int64(0xa637dc5, -1563912026), +new int64(0x113f9804, -1090974290), new int64(0x1b710b35, 0x131c471b), +new int64(0x28db77f5, 0x23047d84), new int64(0x32caab7b, 0x40c72493), +new int64(0x3c9ebe0a, 0x15c9bebc), new int64(0x431d67c4, -1676669620), +new int64(0x4cc5d4be, -885112138), new int64(0x597f299c, -60457430), +new int64(0x5fcb6fab, 0x3ad6faec), new int64(0x6c44198c, 0x4a475817)); + } + + //Initial hash values + var H = new Array( +new int64(0x6a09e667, -205731576), +new int64(-1150833019, -2067093701), +new int64(0x3c6ef372, -23791573), +new int64(-1521486534, 0x5f1d36f1), +new int64(0x510e527f, -1377402159), +new int64(-1694144372, 0x2b3e6c1f), +new int64(0x1f83d9ab, -79577749), +new int64(0x5be0cd19, 0x137e2179)); + + var T1 = new int64(0, 0), + T2 = new int64(0, 0), + a = new int64(0,0), + b = new int64(0,0), + c = new int64(0,0), + d = new int64(0,0), + e = new int64(0,0), + f = new int64(0,0), + g = new int64(0,0), + h = new int64(0,0), + //Temporary variables not specified by the document + s0 = new int64(0, 0), + s1 = new int64(0, 0), + Ch = new int64(0, 0), + Maj = new int64(0, 0), + r1 = new int64(0, 0), + r2 = new int64(0, 0), + r3 = new int64(0, 0); + var j, i; + var W = new Array(80); + for(i=0; i<80; i++) + W[i] = new int64(0, 0); + + // append padding to the source string. The format is described in the FIPS. + x[len >> 5] |= 0x80 << (24 - (len & 0x1f)); + x[((len + 128 >> 10)<< 5) + 31] = len; + + for(i = 0; i=32 +//The function revrrot() is for that +function int64rrot(dst, x, shift) +{ + dst.l = (x.l >>> shift) | (x.h << (32-shift)); + dst.h = (x.h >>> shift) | (x.l << (32-shift)); +} + +//Reverses the dwords of the source and then rotates right by shift. +//This is equivalent to rotation by 32+shift +function int64revrrot(dst, x, shift) +{ + dst.l = (x.h >>> shift) | (x.l << (32-shift)); + dst.h = (x.l >>> shift) | (x.h << (32-shift)); +} + +//Bitwise-shifts right a 64-bit number by shift +//Won't handle shift>=32, but it's never needed in SHA512 +function int64shr(dst, x, shift) +{ + dst.l = (x.l >>> shift) | (x.h << (32-shift)); + dst.h = (x.h >>> shift); +} + +//Adds two 64-bit numbers +//Like the original implementation, does not rely on 32-bit operations +function int64add(dst, x, y) +{ + var w0 = (x.l & 0xffff) + (y.l & 0xffff); + var w1 = (x.l >>> 16) + (y.l >>> 16) + (w0 >>> 16); + var w2 = (x.h & 0xffff) + (y.h & 0xffff) + (w1 >>> 16); + var w3 = (x.h >>> 16) + (y.h >>> 16) + (w2 >>> 16); + dst.l = (w0 & 0xffff) | (w1 << 16); + dst.h = (w2 & 0xffff) | (w3 << 16); +} + +//Same, except with 4 addends. Works faster than adding them one by one. +function int64add4(dst, a, b, c, d) +{ + var w0 = (a.l & 0xffff) + (b.l & 0xffff) + (c.l & 0xffff) + (d.l & 0xffff); + var w1 = (a.l >>> 16) + (b.l >>> 16) + (c.l >>> 16) + (d.l >>> 16) + (w0 >>> 16); + var w2 = (a.h & 0xffff) + (b.h & 0xffff) + (c.h & 0xffff) + (d.h & 0xffff) + (w1 >>> 16); + var w3 = (a.h >>> 16) + (b.h >>> 16) + (c.h >>> 16) + (d.h >>> 16) + (w2 >>> 16); + dst.l = (w0 & 0xffff) | (w1 << 16); + dst.h = (w2 & 0xffff) | (w3 << 16); +} + +//Same, except with 5 addends +function int64add5(dst, a, b, c, d, e) +{ + var w0 = (a.l & 0xffff) + (b.l & 0xffff) + (c.l & 0xffff) + (d.l & 0xffff) + (e.l & 0xffff); + var w1 = (a.l >>> 16) + (b.l >>> 16) + (c.l >>> 16) + (d.l >>> 16) + (e.l >>> 16) + (w0 >>> 16); + var w2 = (a.h & 0xffff) + (b.h & 0xffff) + (c.h & 0xffff) + (d.h & 0xffff) + (e.h & 0xffff) + (w1 >>> 16); + var w3 = (a.h >>> 16) + (b.h >>> 16) + (c.h >>> 16) + (d.h >>> 16) + (e.h >>> 16) + (w2 >>> 16); + dst.l = (w0 & 0xffff) | (w1 << 16); + dst.h = (w2 & 0xffff) | (w3 << 16); +} From 3de0cfe79ddc7431e2b5ce7f76144fcfc268f2f2 Mon Sep 17 00:00:00 2001 From: Dennis Menge Date: Tue, 14 Jul 2020 22:23:55 +0200 Subject: [PATCH 06/93] Added SHA1, SHA256, and SHA512 algorithms based on jshashes --- Boop/Boop/scripts/MD5.js | 387 +------ Boop/Boop/scripts/SHA1.js | 336 +----- Boop/Boop/scripts/SHA256.js | 343 +----- Boop/Boop/scripts/SHA512.js | 502 +-------- Boop/Boop/scripts/lib/hashes.js | 1765 +++++++++++++++++++++++++++++++ 5 files changed, 1780 insertions(+), 1553 deletions(-) create mode 100644 Boop/Boop/scripts/lib/hashes.js diff --git a/Boop/Boop/scripts/MD5.js b/Boop/Boop/scripts/MD5.js index eec5e4f0..89a63704 100644 --- a/Boop/Boop/scripts/MD5.js +++ b/Boop/Boop/scripts/MD5.js @@ -9,388 +9,9 @@ } **/ -function main(state) { - - state.text = hex_md5(state.text) -} - - -/* - * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message - * Digest Algorithm, as defined in RFC 1321. - * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009 - * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet - * Distributed under the BSD License - * See http://pajhome.org.uk/crypt/md5 for more info. - */ - -/* - * Configurable variables. You may need to tweak these to be compatible with - * the server-side, but the defaults work in most cases. - */ -var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ -var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */ - -/* - * These are the functions you'll usually want to call - * They take string arguments and return either hex or base-64 encoded strings - */ -function hex_md5(s) { return rstr2hex(rstr_md5(str2rstr_utf8(s))); } -function b64_md5(s) { return rstr2b64(rstr_md5(str2rstr_utf8(s))); } -function any_md5(s, e) { return rstr2any(rstr_md5(str2rstr_utf8(s)), e); } -function hex_hmac_md5(k, d) - { return rstr2hex(rstr_hmac_md5(str2rstr_utf8(k), str2rstr_utf8(d))); } -function b64_hmac_md5(k, d) - { return rstr2b64(rstr_hmac_md5(str2rstr_utf8(k), str2rstr_utf8(d))); } -function any_hmac_md5(k, d, e) - { return rstr2any(rstr_hmac_md5(str2rstr_utf8(k), str2rstr_utf8(d)), e); } - -/* - * Perform a simple self-test to see if the VM is working - */ -function md5_vm_test() -{ - return hex_md5("abc").toLowerCase() == "900150983cd24fb0d6963f7d28e17f72"; -} - -/* - * Calculate the MD5 of a raw string - */ -function rstr_md5(s) -{ - return binl2rstr(binl_md5(rstr2binl(s), s.length * 8)); -} - -/* - * Calculate the HMAC-MD5, of a key and some data (raw strings) - */ -function rstr_hmac_md5(key, data) -{ - var bkey = rstr2binl(key); - if(bkey.length > 16) bkey = binl_md5(bkey, key.length * 8); - - var ipad = Array(16), opad = Array(16); - for(var i = 0; i < 16; i++) - { - ipad[i] = bkey[i] ^ 0x36363636; - opad[i] = bkey[i] ^ 0x5C5C5C5C; - } - - var hash = binl_md5(ipad.concat(rstr2binl(data)), 512 + data.length * 8); - return binl2rstr(binl_md5(opad.concat(hash), 512 + 128)); -} +const Hashes = require('@boop/hashes') -/* - * Convert a raw string to a hex string - */ -function rstr2hex(input) -{ - try { hexcase } catch(e) { hexcase=0; } - var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; - var output = ""; - var x; - for(var i = 0; i < input.length; i++) - { - x = input.charCodeAt(i); - output += hex_tab.charAt((x >>> 4) & 0x0F) - + hex_tab.charAt( x & 0x0F); - } - return output; -} - -/* - * Convert a raw string to a base-64 string - */ -function rstr2b64(input) -{ - try { b64pad } catch(e) { b64pad=''; } - var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - var output = ""; - var len = input.length; - for(var i = 0; i < len; i += 3) - { - var triplet = (input.charCodeAt(i) << 16) - | (i + 1 < len ? input.charCodeAt(i+1) << 8 : 0) - | (i + 2 < len ? input.charCodeAt(i+2) : 0); - for(var j = 0; j < 4; j++) - { - if(i * 8 + j * 6 > input.length * 8) output += b64pad; - else output += tab.charAt((triplet >>> 6*(3-j)) & 0x3F); - } - } - return output; -} - -/* - * Convert a raw string to an arbitrary string encoding - */ -function rstr2any(input, encoding) -{ - var divisor = encoding.length; - var i, j, q, x, quotient; - - /* Convert to an array of 16-bit big-endian values, forming the dividend */ - var dividend = Array(Math.ceil(input.length / 2)); - for(i = 0; i < dividend.length; i++) - { - dividend[i] = (input.charCodeAt(i * 2) << 8) | input.charCodeAt(i * 2 + 1); - } - - /* - * Repeatedly perform a long division. The binary array forms the dividend, - * the length of the encoding is the divisor. Once computed, the quotient - * forms the dividend for the next step. All remainders are stored for later - * use. - */ - var full_length = Math.ceil(input.length * 8 / - (Math.log(encoding.length) / Math.log(2))); - var remainders = Array(full_length); - for(j = 0; j < full_length; j++) - { - quotient = Array(); - x = 0; - for(i = 0; i < dividend.length; i++) - { - x = (x << 16) + dividend[i]; - q = Math.floor(x / divisor); - x -= q * divisor; - if(quotient.length > 0 || q > 0) - quotient[quotient.length] = q; - } - remainders[j] = x; - dividend = quotient; - } - - /* Convert the remainders to the output string */ - var output = ""; - for(i = remainders.length - 1; i >= 0; i--) - output += encoding.charAt(remainders[i]); - - return output; -} - -/* - * Encode a string as utf-8. - * For efficiency, this assumes the input is valid utf-16. - */ -function str2rstr_utf8(input) -{ - var output = ""; - var i = -1; - var x, y; - - while(++i < input.length) - { - /* Decode utf-16 surrogate pairs */ - x = input.charCodeAt(i); - y = i + 1 < input.length ? input.charCodeAt(i + 1) : 0; - if(0xD800 <= x && x <= 0xDBFF && 0xDC00 <= y && y <= 0xDFFF) - { - x = 0x10000 + ((x & 0x03FF) << 10) + (y & 0x03FF); - i++; - } - - /* Encode output as utf-8 */ - if(x <= 0x7F) - output += String.fromCharCode(x); - else if(x <= 0x7FF) - output += String.fromCharCode(0xC0 | ((x >>> 6 ) & 0x1F), - 0x80 | ( x & 0x3F)); - else if(x <= 0xFFFF) - output += String.fromCharCode(0xE0 | ((x >>> 12) & 0x0F), - 0x80 | ((x >>> 6 ) & 0x3F), - 0x80 | ( x & 0x3F)); - else if(x <= 0x1FFFFF) - output += String.fromCharCode(0xF0 | ((x >>> 18) & 0x07), - 0x80 | ((x >>> 12) & 0x3F), - 0x80 | ((x >>> 6 ) & 0x3F), - 0x80 | ( x & 0x3F)); - } - return output; -} - -/* - * Encode a string as utf-16 - */ -function str2rstr_utf16le(input) -{ - var output = ""; - for(var i = 0; i < input.length; i++) - output += String.fromCharCode( input.charCodeAt(i) & 0xFF, - (input.charCodeAt(i) >>> 8) & 0xFF); - return output; -} - -function str2rstr_utf16be(input) -{ - var output = ""; - for(var i = 0; i < input.length; i++) - output += String.fromCharCode((input.charCodeAt(i) >>> 8) & 0xFF, - input.charCodeAt(i) & 0xFF); - return output; -} - -/* - * Convert a raw string to an array of little-endian words - * Characters >255 have their high-byte silently ignored. - */ -function rstr2binl(input) -{ - var output = Array(input.length >> 2); - for(var i = 0; i < output.length; i++) - output[i] = 0; - for(var i = 0; i < input.length * 8; i += 8) - output[i>>5] |= (input.charCodeAt(i / 8) & 0xFF) << (i%32); - return output; -} - -/* - * Convert an array of little-endian words to a string - */ -function binl2rstr(input) -{ - var output = ""; - for(var i = 0; i < input.length * 32; i += 8) - output += String.fromCharCode((input[i>>5] >>> (i % 32)) & 0xFF); - return output; -} - -/* - * Calculate the MD5 of an array of little-endian words, and a bit length. - */ -function binl_md5(x, len) -{ - /* append padding */ - x[len >> 5] |= 0x80 << ((len) % 32); - x[(((len + 64) >>> 9) << 4) + 14] = len; - - var a = 1732584193; - var b = -271733879; - var c = -1732584194; - var d = 271733878; - - for(var i = 0; i < x.length; i += 16) - { - var olda = a; - var oldb = b; - var oldc = c; - var oldd = d; - - a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936); - d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586); - c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819); - b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330); - a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897); - d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426); - c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341); - b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983); - a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416); - d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417); - c = md5_ff(c, d, a, b, x[i+10], 17, -42063); - b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162); - a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682); - d = md5_ff(d, a, b, c, x[i+13], 12, -40341101); - c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290); - b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329); - - a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510); - d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632); - c = md5_gg(c, d, a, b, x[i+11], 14, 643717713); - b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302); - a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691); - d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083); - c = md5_gg(c, d, a, b, x[i+15], 14, -660478335); - b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848); - a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438); - d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690); - c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961); - b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501); - a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467); - d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784); - c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473); - b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734); - - a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558); - d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463); - c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562); - b = md5_hh(b, c, d, a, x[i+14], 23, -35309556); - a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060); - d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353); - c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632); - b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640); - a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174); - d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222); - c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979); - b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189); - a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487); - d = md5_hh(d, a, b, c, x[i+12], 11, -421815835); - c = md5_hh(c, d, a, b, x[i+15], 16, 530742520); - b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651); - - a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844); - d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415); - c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905); - b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055); - a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571); - d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606); - c = md5_ii(c, d, a, b, x[i+10], 15, -1051523); - b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799); - a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359); - d = md5_ii(d, a, b, c, x[i+15], 10, -30611744); - c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380); - b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649); - a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070); - d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379); - c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259); - b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551); - - a = safe_add(a, olda); - b = safe_add(b, oldb); - c = safe_add(c, oldc); - d = safe_add(d, oldd); - } - return Array(a, b, c, d); -} - -/* - * These functions implement the four basic operations the algorithm uses. - */ -function md5_cmn(q, a, b, x, s, t) -{ - return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b); -} -function md5_ff(a, b, c, d, x, s, t) -{ - return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t); -} -function md5_gg(a, b, c, d, x, s, t) -{ - return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t); -} -function md5_hh(a, b, c, d, x, s, t) -{ - return md5_cmn(b ^ c ^ d, a, b, x, s, t); -} -function md5_ii(a, b, c, d, x, s, t) -{ - return md5_cmn(c ^ (b | (~d)), a, b, x, s, t); -} - -/* - * Add integers, wrapping at 2^32. This uses 16-bit operations internally - * to work around bugs in some JS interpreters. - */ -function safe_add(x, y) -{ - var lsw = (x & 0xFFFF) + (y & 0xFFFF); - var msw = (x >> 16) + (y >> 16) + (lsw >> 16); - return (msw << 16) | (lsw & 0xFFFF); +function main(state) { + var MD5 = new Hashes.MD5; + state.text = MD5.hex(state.text) } - -/* - * Bitwise rotate a 32-bit number to the left. - */ -function bit_rol(num, cnt) -{ - return (num << cnt) | (num >>> (32 - cnt)); -} \ No newline at end of file diff --git a/Boop/Boop/scripts/SHA1.js b/Boop/Boop/scripts/SHA1.js index 7242b344..2ab5ce46 100644 --- a/Boop/Boop/scripts/SHA1.js +++ b/Boop/Boop/scripts/SHA1.js @@ -8,337 +8,9 @@ } **/ -function main(state) { - state.text = hex_sha1(state.text) -} - -/* - * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined - * in FIPS 180-1 - * Version 2.2 Copyright Paul Johnston 2000 - 2009. - * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet - * Distributed under the BSD License - * See http://pajhome.org.uk/crypt/md5 for details. - */ - -/* - * Configurable variables. You may need to tweak these to be compatible with - * the server-side, but the defaults work in most cases. - */ -var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ -var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */ - -/* - * These are the functions you'll usually want to call - * They take string arguments and return either hex or base-64 encoded strings - */ -function hex_sha1(s) { return rstr2hex(rstr_sha1(str2rstr_utf8(s))); } -function b64_sha1(s) { return rstr2b64(rstr_sha1(str2rstr_utf8(s))); } -function any_sha1(s, e) { return rstr2any(rstr_sha1(str2rstr_utf8(s)), e); } -function hex_hmac_sha1(k, d) - { return rstr2hex(rstr_hmac_sha1(str2rstr_utf8(k), str2rstr_utf8(d))); } -function b64_hmac_sha1(k, d) - { return rstr2b64(rstr_hmac_sha1(str2rstr_utf8(k), str2rstr_utf8(d))); } -function any_hmac_sha1(k, d, e) - { return rstr2any(rstr_hmac_sha1(str2rstr_utf8(k), str2rstr_utf8(d)), e); } - -/* - * Perform a simple self-test to see if the VM is working - */ -function sha1_vm_test() -{ - return hex_sha1("abc").toLowerCase() == "a9993e364706816aba3e25717850c26c9cd0d89d"; -} - -/* - * Calculate the SHA1 of a raw string - */ -function rstr_sha1(s) -{ - return binb2rstr(binb_sha1(rstr2binb(s), s.length * 8)); -} - -/* - * Calculate the HMAC-SHA1 of a key and some data (raw strings) - */ -function rstr_hmac_sha1(key, data) -{ - var bkey = rstr2binb(key); - if(bkey.length > 16) bkey = binb_sha1(bkey, key.length * 8); - - var ipad = Array(16), opad = Array(16); - for(var i = 0; i < 16; i++) - { - ipad[i] = bkey[i] ^ 0x36363636; - opad[i] = bkey[i] ^ 0x5C5C5C5C; - } - - var hash = binb_sha1(ipad.concat(rstr2binb(data)), 512 + data.length * 8); - return binb2rstr(binb_sha1(opad.concat(hash), 512 + 160)); -} - -/* - * Convert a raw string to a hex string - */ -function rstr2hex(input) -{ - try { hexcase } catch(e) { hexcase=0; } - var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; - var output = ""; - var x; - for(var i = 0; i < input.length; i++) - { - x = input.charCodeAt(i); - output += hex_tab.charAt((x >>> 4) & 0x0F) - + hex_tab.charAt( x & 0x0F); - } - return output; -} - -/* - * Convert a raw string to a base-64 string - */ -function rstr2b64(input) -{ - try { b64pad } catch(e) { b64pad=''; } - var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - var output = ""; - var len = input.length; - for(var i = 0; i < len; i += 3) - { - var triplet = (input.charCodeAt(i) << 16) - | (i + 1 < len ? input.charCodeAt(i+1) << 8 : 0) - | (i + 2 < len ? input.charCodeAt(i+2) : 0); - for(var j = 0; j < 4; j++) - { - if(i * 8 + j * 6 > input.length * 8) output += b64pad; - else output += tab.charAt((triplet >>> 6*(3-j)) & 0x3F); - } - } - return output; -} - -/* - * Convert a raw string to an arbitrary string encoding - */ -function rstr2any(input, encoding) -{ - var divisor = encoding.length; - var remainders = Array(); - var i, q, x, quotient; - - /* Convert to an array of 16-bit big-endian values, forming the dividend */ - var dividend = Array(Math.ceil(input.length / 2)); - for(i = 0; i < dividend.length; i++) - { - dividend[i] = (input.charCodeAt(i * 2) << 8) | input.charCodeAt(i * 2 + 1); - } - - /* - * Repeatedly perform a long division. The binary array forms the dividend, - * the length of the encoding is the divisor. Once computed, the quotient - * forms the dividend for the next step. We stop when the dividend is zero. - * All remainders are stored for later use. - */ - while(dividend.length > 0) - { - quotient = Array(); - x = 0; - for(i = 0; i < dividend.length; i++) - { - x = (x << 16) + dividend[i]; - q = Math.floor(x / divisor); - x -= q * divisor; - if(quotient.length > 0 || q > 0) - quotient[quotient.length] = q; - } - remainders[remainders.length] = x; - dividend = quotient; - } - - /* Convert the remainders to the output string */ - var output = ""; - for(i = remainders.length - 1; i >= 0; i--) - output += encoding.charAt(remainders[i]); - - /* Append leading zero equivalents */ - var full_length = Math.ceil(input.length * 8 / - (Math.log(encoding.length) / Math.log(2))) - for(i = output.length; i < full_length; i++) - output = encoding[0] + output; - - return output; -} - -/* - * Encode a string as utf-8. - * For efficiency, this assumes the input is valid utf-16. - */ -function str2rstr_utf8(input) -{ - var output = ""; - var i = -1; - var x, y; +const Hashes = require('@boop/hashes') - while(++i < input.length) - { - /* Decode utf-16 surrogate pairs */ - x = input.charCodeAt(i); - y = i + 1 < input.length ? input.charCodeAt(i + 1) : 0; - if(0xD800 <= x && x <= 0xDBFF && 0xDC00 <= y && y <= 0xDFFF) - { - x = 0x10000 + ((x & 0x03FF) << 10) + (y & 0x03FF); - i++; - } - - /* Encode output as utf-8 */ - if(x <= 0x7F) - output += String.fromCharCode(x); - else if(x <= 0x7FF) - output += String.fromCharCode(0xC0 | ((x >>> 6 ) & 0x1F), - 0x80 | ( x & 0x3F)); - else if(x <= 0xFFFF) - output += String.fromCharCode(0xE0 | ((x >>> 12) & 0x0F), - 0x80 | ((x >>> 6 ) & 0x3F), - 0x80 | ( x & 0x3F)); - else if(x <= 0x1FFFFF) - output += String.fromCharCode(0xF0 | ((x >>> 18) & 0x07), - 0x80 | ((x >>> 12) & 0x3F), - 0x80 | ((x >>> 6 ) & 0x3F), - 0x80 | ( x & 0x3F)); - } - return output; -} - -/* - * Encode a string as utf-16 - */ -function str2rstr_utf16le(input) -{ - var output = ""; - for(var i = 0; i < input.length; i++) - output += String.fromCharCode( input.charCodeAt(i) & 0xFF, - (input.charCodeAt(i) >>> 8) & 0xFF); - return output; -} - -function str2rstr_utf16be(input) -{ - var output = ""; - for(var i = 0; i < input.length; i++) - output += String.fromCharCode((input.charCodeAt(i) >>> 8) & 0xFF, - input.charCodeAt(i) & 0xFF); - return output; -} - -/* - * Convert a raw string to an array of big-endian words - * Characters >255 have their high-byte silently ignored. - */ -function rstr2binb(input) -{ - var output = Array(input.length >> 2); - for(var i = 0; i < output.length; i++) - output[i] = 0; - for(var i = 0; i < input.length * 8; i += 8) - output[i>>5] |= (input.charCodeAt(i / 8) & 0xFF) << (24 - i % 32); - return output; -} - -/* - * Convert an array of big-endian words to a string - */ -function binb2rstr(input) -{ - var output = ""; - for(var i = 0; i < input.length * 32; i += 8) - output += String.fromCharCode((input[i>>5] >>> (24 - i % 32)) & 0xFF); - return output; -} - -/* - * Calculate the SHA-1 of an array of big-endian words, and a bit length - */ -function binb_sha1(x, len) -{ - /* append padding */ - x[len >> 5] |= 0x80 << (24 - len % 32); - x[((len + 64 >> 9) << 4) + 15] = len; - - var w = Array(80); - var a = 1732584193; - var b = -271733879; - var c = -1732584194; - var d = 271733878; - var e = -1009589776; - - for(var i = 0; i < x.length; i += 16) - { - var olda = a; - var oldb = b; - var oldc = c; - var oldd = d; - var olde = e; - - for(var j = 0; j < 80; j++) - { - if(j < 16) w[j] = x[i + j]; - else w[j] = bit_rol(w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16], 1); - var t = safe_add(safe_add(bit_rol(a, 5), sha1_ft(j, b, c, d)), - safe_add(safe_add(e, w[j]), sha1_kt(j))); - e = d; - d = c; - c = bit_rol(b, 30); - b = a; - a = t; - } - - a = safe_add(a, olda); - b = safe_add(b, oldb); - c = safe_add(c, oldc); - d = safe_add(d, oldd); - e = safe_add(e, olde); - } - return Array(a, b, c, d, e); - -} - -/* - * Perform the appropriate triplet combination function for the current - * iteration - */ -function sha1_ft(t, b, c, d) -{ - if(t < 20) return (b & c) | ((~b) & d); - if(t < 40) return b ^ c ^ d; - if(t < 60) return (b & c) | (b & d) | (c & d); - return b ^ c ^ d; -} - -/* - * Determine the appropriate additive constant for the current iteration - */ -function sha1_kt(t) -{ - return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 : - (t < 60) ? -1894007588 : -899497514; -} - -/* - * Add integers, wrapping at 2^32. This uses 16-bit operations internally - * to work around bugs in some JS interpreters. - */ -function safe_add(x, y) -{ - var lsw = (x & 0xFFFF) + (y & 0xFFFF); - var msw = (x >> 16) + (y >> 16) + (lsw >> 16); - return (msw << 16) | (lsw & 0xFFFF); +function main(state) { + var SHA1 = new Hashes.SHA1; + state.text = SHA1.hex(state.text) } - -/* - * Bitwise rotate a 32-bit number to the left. - */ -function bit_rol(num, cnt) -{ - return (num << cnt) | (num >>> (32 - cnt)); -} \ No newline at end of file diff --git a/Boop/Boop/scripts/SHA256.js b/Boop/Boop/scripts/SHA256.js index a7b0e4b4..3b23bb6a 100644 --- a/Boop/Boop/scripts/SHA256.js +++ b/Boop/Boop/scripts/SHA256.js @@ -7,346 +7,9 @@ "tags":"strip,slashes,remove" } **/ +const Hashes = require('@boop/hashes') function main(state) { - state.text = hex_sha256(state.text) -} - - -/* - * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined - * in FIPS 180-2 - * Version 2.2 Copyright Angel Marin, Paul Johnston 2000 - 2009. - * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet - * Distributed under the BSD License - * See http://pajhome.org.uk/crypt/md5 for details. - * Also http://anmar.eu.org/projects/jssha2/ - */ - -/* - * Configurable variables. You may need to tweak these to be compatible with - * the server-side, but the defaults work in most cases. - */ -var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ -var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */ - -/* - * These are the functions you'll usually want to call - * They take string arguments and return either hex or base-64 encoded strings - */ -function hex_sha256(s) { return rstr2hex(rstr_sha256(str2rstr_utf8(s))); } -function b64_sha256(s) { return rstr2b64(rstr_sha256(str2rstr_utf8(s))); } -function any_sha256(s, e) { return rstr2any(rstr_sha256(str2rstr_utf8(s)), e); } -function hex_hmac_sha256(k, d) - { return rstr2hex(rstr_hmac_sha256(str2rstr_utf8(k), str2rstr_utf8(d))); } -function b64_hmac_sha256(k, d) - { return rstr2b64(rstr_hmac_sha256(str2rstr_utf8(k), str2rstr_utf8(d))); } -function any_hmac_sha256(k, d, e) - { return rstr2any(rstr_hmac_sha256(str2rstr_utf8(k), str2rstr_utf8(d)), e); } - -/* - * Perform a simple self-test to see if the VM is working - */ -function sha256_vm_test() -{ - return hex_sha256("abc").toLowerCase() == - "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"; -} - -/* - * Calculate the sha256 of a raw string - */ -function rstr_sha256(s) -{ - return binb2rstr(binb_sha256(rstr2binb(s), s.length * 8)); -} - -/* - * Calculate the HMAC-sha256 of a key and some data (raw strings) - */ -function rstr_hmac_sha256(key, data) -{ - var bkey = rstr2binb(key); - if(bkey.length > 16) bkey = binb_sha256(bkey, key.length * 8); - - var ipad = Array(16), opad = Array(16); - for(var i = 0; i < 16; i++) - { - ipad[i] = bkey[i] ^ 0x36363636; - opad[i] = bkey[i] ^ 0x5C5C5C5C; - } - - var hash = binb_sha256(ipad.concat(rstr2binb(data)), 512 + data.length * 8); - return binb2rstr(binb_sha256(opad.concat(hash), 512 + 256)); -} - -/* - * Convert a raw string to a hex string - */ -function rstr2hex(input) -{ - try { hexcase } catch(e) { hexcase=0; } - var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; - var output = ""; - var x; - for(var i = 0; i < input.length; i++) - { - x = input.charCodeAt(i); - output += hex_tab.charAt((x >>> 4) & 0x0F) - + hex_tab.charAt( x & 0x0F); - } - return output; -} - -/* - * Convert a raw string to a base-64 string - */ -function rstr2b64(input) -{ - try { b64pad } catch(e) { b64pad=''; } - var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - var output = ""; - var len = input.length; - for(var i = 0; i < len; i += 3) - { - var triplet = (input.charCodeAt(i) << 16) - | (i + 1 < len ? input.charCodeAt(i+1) << 8 : 0) - | (i + 2 < len ? input.charCodeAt(i+2) : 0); - for(var j = 0; j < 4; j++) - { - if(i * 8 + j * 6 > input.length * 8) output += b64pad; - else output += tab.charAt((triplet >>> 6*(3-j)) & 0x3F); - } - } - return output; -} - -/* - * Convert a raw string to an arbitrary string encoding - */ -function rstr2any(input, encoding) -{ - var divisor = encoding.length; - var remainders = Array(); - var i, q, x, quotient; - - /* Convert to an array of 16-bit big-endian values, forming the dividend */ - var dividend = Array(Math.ceil(input.length / 2)); - for(i = 0; i < dividend.length; i++) - { - dividend[i] = (input.charCodeAt(i * 2) << 8) | input.charCodeAt(i * 2 + 1); - } - - /* - * Repeatedly perform a long division. The binary array forms the dividend, - * the length of the encoding is the divisor. Once computed, the quotient - * forms the dividend for the next step. We stop when the dividend is zero. - * All remainders are stored for later use. - */ - while(dividend.length > 0) - { - quotient = Array(); - x = 0; - for(i = 0; i < dividend.length; i++) - { - x = (x << 16) + dividend[i]; - q = Math.floor(x / divisor); - x -= q * divisor; - if(quotient.length > 0 || q > 0) - quotient[quotient.length] = q; - } - remainders[remainders.length] = x; - dividend = quotient; - } - - /* Convert the remainders to the output string */ - var output = ""; - for(i = remainders.length - 1; i >= 0; i--) - output += encoding.charAt(remainders[i]); - - /* Append leading zero equivalents */ - var full_length = Math.ceil(input.length * 8 / - (Math.log(encoding.length) / Math.log(2))) - for(i = output.length; i < full_length; i++) - output = encoding[0] + output; - - return output; -} - -/* - * Encode a string as utf-8. - * For efficiency, this assumes the input is valid utf-16. - */ -function str2rstr_utf8(input) -{ - var output = ""; - var i = -1; - var x, y; - - while(++i < input.length) - { - /* Decode utf-16 surrogate pairs */ - x = input.charCodeAt(i); - y = i + 1 < input.length ? input.charCodeAt(i + 1) : 0; - if(0xD800 <= x && x <= 0xDBFF && 0xDC00 <= y && y <= 0xDFFF) - { - x = 0x10000 + ((x & 0x03FF) << 10) + (y & 0x03FF); - i++; - } - - /* Encode output as utf-8 */ - if(x <= 0x7F) - output += String.fromCharCode(x); - else if(x <= 0x7FF) - output += String.fromCharCode(0xC0 | ((x >>> 6 ) & 0x1F), - 0x80 | ( x & 0x3F)); - else if(x <= 0xFFFF) - output += String.fromCharCode(0xE0 | ((x >>> 12) & 0x0F), - 0x80 | ((x >>> 6 ) & 0x3F), - 0x80 | ( x & 0x3F)); - else if(x <= 0x1FFFFF) - output += String.fromCharCode(0xF0 | ((x >>> 18) & 0x07), - 0x80 | ((x >>> 12) & 0x3F), - 0x80 | ((x >>> 6 ) & 0x3F), - 0x80 | ( x & 0x3F)); - } - return output; -} - -/* - * Encode a string as utf-16 - */ -function str2rstr_utf16le(input) -{ - var output = ""; - for(var i = 0; i < input.length; i++) - output += String.fromCharCode( input.charCodeAt(i) & 0xFF, - (input.charCodeAt(i) >>> 8) & 0xFF); - return output; -} - -function str2rstr_utf16be(input) -{ - var output = ""; - for(var i = 0; i < input.length; i++) - output += String.fromCharCode((input.charCodeAt(i) >>> 8) & 0xFF, - input.charCodeAt(i) & 0xFF); - return output; -} - -/* - * Convert a raw string to an array of big-endian words - * Characters >255 have their high-byte silently ignored. - */ -function rstr2binb(input) -{ - var output = Array(input.length >> 2); - for(var i = 0; i < output.length; i++) - output[i] = 0; - for(var i = 0; i < input.length * 8; i += 8) - output[i>>5] |= (input.charCodeAt(i / 8) & 0xFF) << (24 - i % 32); - return output; -} - -/* - * Convert an array of big-endian words to a string - */ -function binb2rstr(input) -{ - var output = ""; - for(var i = 0; i < input.length * 32; i += 8) - output += String.fromCharCode((input[i>>5] >>> (24 - i % 32)) & 0xFF); - return output; -} - -/* - * Main sha256 function, with its support functions - */ -function sha256_S (X, n) {return ( X >>> n ) | (X << (32 - n));} -function sha256_R (X, n) {return ( X >>> n );} -function sha256_Ch(x, y, z) {return ((x & y) ^ ((~x) & z));} -function sha256_Maj(x, y, z) {return ((x & y) ^ (x & z) ^ (y & z));} -function sha256_Sigma0256(x) {return (sha256_S(x, 2) ^ sha256_S(x, 13) ^ sha256_S(x, 22));} -function sha256_Sigma1256(x) {return (sha256_S(x, 6) ^ sha256_S(x, 11) ^ sha256_S(x, 25));} -function sha256_Gamma0256(x) {return (sha256_S(x, 7) ^ sha256_S(x, 18) ^ sha256_R(x, 3));} -function sha256_Gamma1256(x) {return (sha256_S(x, 17) ^ sha256_S(x, 19) ^ sha256_R(x, 10));} -function sha256_Sigma0512(x) {return (sha256_S(x, 28) ^ sha256_S(x, 34) ^ sha256_S(x, 39));} -function sha256_Sigma1512(x) {return (sha256_S(x, 14) ^ sha256_S(x, 18) ^ sha256_S(x, 41));} -function sha256_Gamma0512(x) {return (sha256_S(x, 1) ^ sha256_S(x, 8) ^ sha256_R(x, 7));} -function sha256_Gamma1512(x) {return (sha256_S(x, 19) ^ sha256_S(x, 61) ^ sha256_R(x, 6));} - -var sha256_K = new Array -( - 1116352408, 1899447441, -1245643825, -373957723, 961987163, 1508970993, - -1841331548, -1424204075, -670586216, 310598401, 607225278, 1426881987, - 1925078388, -2132889090, -1680079193, -1046744716, -459576895, -272742522, - 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, - -1740746414, -1473132947, -1341970488, -1084653625, -958395405, -710438585, - 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, - 1695183700, 1986661051, -2117940946, -1838011259, -1564481375, -1474664885, - -1035236496, -949202525, -778901479, -694614492, -200395387, 275423344, - 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, - 1537002063, 1747873779, 1955562222, 2024104815, -2067236844, -1933114872, - -1866530822, -1538233109, -1090935817, -965641998 -); - -function binb_sha256(m, l) -{ - var HASH = new Array(1779033703, -1150833019, 1013904242, -1521486534, - 1359893119, -1694144372, 528734635, 1541459225); - var W = new Array(64); - var a, b, c, d, e, f, g, h; - var i, j, T1, T2; - - /* append padding */ - m[l >> 5] |= 0x80 << (24 - l % 32); - m[((l + 64 >> 9) << 4) + 15] = l; - - for(i = 0; i < m.length; i += 16) - { - a = HASH[0]; - b = HASH[1]; - c = HASH[2]; - d = HASH[3]; - e = HASH[4]; - f = HASH[5]; - g = HASH[6]; - h = HASH[7]; - - for(j = 0; j < 64; j++) - { - if (j < 16) W[j] = m[j + i]; - else W[j] = safe_add(safe_add(safe_add(sha256_Gamma1256(W[j - 2]), W[j - 7]), - sha256_Gamma0256(W[j - 15])), W[j - 16]); - - T1 = safe_add(safe_add(safe_add(safe_add(h, sha256_Sigma1256(e)), sha256_Ch(e, f, g)), - sha256_K[j]), W[j]); - T2 = safe_add(sha256_Sigma0256(a), sha256_Maj(a, b, c)); - h = g; - g = f; - f = e; - e = safe_add(d, T1); - d = c; - c = b; - b = a; - a = safe_add(T1, T2); - } - - HASH[0] = safe_add(a, HASH[0]); - HASH[1] = safe_add(b, HASH[1]); - HASH[2] = safe_add(c, HASH[2]); - HASH[3] = safe_add(d, HASH[3]); - HASH[4] = safe_add(e, HASH[4]); - HASH[5] = safe_add(f, HASH[5]); - HASH[6] = safe_add(g, HASH[6]); - HASH[7] = safe_add(h, HASH[7]); - } - return HASH; -} - -function safe_add (x, y) -{ - var lsw = (x & 0xFFFF) + (y & 0xFFFF); - var msw = (x >> 16) + (y >> 16) + (lsw >> 16); - return (msw << 16) | (lsw & 0xFFFF); + var SHA256 = new Hashes.SHA256; + state.text = SHA256.hex(state.text) } diff --git a/Boop/Boop/scripts/SHA512.js b/Boop/Boop/scripts/SHA512.js index be65fb24..16280834 100644 --- a/Boop/Boop/scripts/SHA512.js +++ b/Boop/Boop/scripts/SHA512.js @@ -8,503 +8,9 @@ } **/ -function main(state) { - state.text = hex_sha512(state.text) -} - -/* - * A JavaScript implementation of the Secure Hash Algorithm, SHA-512, as defined - * in FIPS 180-2 - * Version 2.2 Copyright Anonymous Contributor, Paul Johnston 2000 - 2009. - * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet - * Distributed under the BSD License - * See http://pajhome.org.uk/crypt/md5 for details. - */ - -/* - * Configurable variables. You may need to tweak these to be compatible with - * the server-side, but the defaults work in most cases. - */ -var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ -var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */ - -/* - * These are the functions you'll usually want to call - * They take string arguments and return either hex or base-64 encoded strings - */ -function hex_sha512(s) { return rstr2hex(rstr_sha512(str2rstr_utf8(s))); } -function b64_sha512(s) { return rstr2b64(rstr_sha512(str2rstr_utf8(s))); } -function any_sha512(s, e) { return rstr2any(rstr_sha512(str2rstr_utf8(s)), e);} -function hex_hmac_sha512(k, d) - { return rstr2hex(rstr_hmac_sha512(str2rstr_utf8(k), str2rstr_utf8(d))); } -function b64_hmac_sha512(k, d) - { return rstr2b64(rstr_hmac_sha512(str2rstr_utf8(k), str2rstr_utf8(d))); } -function any_hmac_sha512(k, d, e) - { return rstr2any(rstr_hmac_sha512(str2rstr_utf8(k), str2rstr_utf8(d)), e);} - -/* - * Perform a simple self-test to see if the VM is working - */ -function sha512_vm_test() -{ - return hex_sha512("abc").toLowerCase() == - "ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a" + - "2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f"; -} - -/* - * Calculate the SHA-512 of a raw string - */ -function rstr_sha512(s) -{ - return binb2rstr(binb_sha512(rstr2binb(s), s.length * 8)); -} - -/* - * Calculate the HMAC-SHA-512 of a key and some data (raw strings) - */ -function rstr_hmac_sha512(key, data) -{ - var bkey = rstr2binb(key); - if(bkey.length > 32) bkey = binb_sha512(bkey, key.length * 8); - - var ipad = Array(32), opad = Array(32); - for(var i = 0; i < 32; i++) - { - ipad[i] = bkey[i] ^ 0x36363636; - opad[i] = bkey[i] ^ 0x5C5C5C5C; - } - - var hash = binb_sha512(ipad.concat(rstr2binb(data)), 1024 + data.length * 8); - return binb2rstr(binb_sha512(opad.concat(hash), 1024 + 512)); -} - -/* - * Convert a raw string to a hex string - */ -function rstr2hex(input) -{ - try { hexcase } catch(e) { hexcase=0; } - var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; - var output = ""; - var x; - for(var i = 0; i < input.length; i++) - { - x = input.charCodeAt(i); - output += hex_tab.charAt((x >>> 4) & 0x0F) - + hex_tab.charAt( x & 0x0F); - } - return output; -} - -/* - * Convert a raw string to a base-64 string - */ -function rstr2b64(input) -{ - try { b64pad } catch(e) { b64pad=''; } - var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - var output = ""; - var len = input.length; - for(var i = 0; i < len; i += 3) - { - var triplet = (input.charCodeAt(i) << 16) - | (i + 1 < len ? input.charCodeAt(i+1) << 8 : 0) - | (i + 2 < len ? input.charCodeAt(i+2) : 0); - for(var j = 0; j < 4; j++) - { - if(i * 8 + j * 6 > input.length * 8) output += b64pad; - else output += tab.charAt((triplet >>> 6*(3-j)) & 0x3F); - } - } - return output; -} - -/* - * Convert a raw string to an arbitrary string encoding - */ -function rstr2any(input, encoding) -{ - var divisor = encoding.length; - var i, j, q, x, quotient; - - /* Convert to an array of 16-bit big-endian values, forming the dividend */ - var dividend = Array(Math.ceil(input.length / 2)); - for(i = 0; i < dividend.length; i++) - { - dividend[i] = (input.charCodeAt(i * 2) << 8) | input.charCodeAt(i * 2 + 1); - } - - /* - * Repeatedly perform a long division. The binary array forms the dividend, - * the length of the encoding is the divisor. Once computed, the quotient - * forms the dividend for the next step. All remainders are stored for later - * use. - */ - var full_length = Math.ceil(input.length * 8 / - (Math.log(encoding.length) / Math.log(2))); - var remainders = Array(full_length); - for(j = 0; j < full_length; j++) - { - quotient = Array(); - x = 0; - for(i = 0; i < dividend.length; i++) - { - x = (x << 16) + dividend[i]; - q = Math.floor(x / divisor); - x -= q * divisor; - if(quotient.length > 0 || q > 0) - quotient[quotient.length] = q; - } - remainders[j] = x; - dividend = quotient; - } - - /* Convert the remainders to the output string */ - var output = ""; - for(i = remainders.length - 1; i >= 0; i--) - output += encoding.charAt(remainders[i]); - - return output; -} - -/* - * Encode a string as utf-8. - * For efficiency, this assumes the input is valid utf-16. - */ -function str2rstr_utf8(input) -{ - var output = ""; - var i = -1; - var x, y; - - while(++i < input.length) - { - /* Decode utf-16 surrogate pairs */ - x = input.charCodeAt(i); - y = i + 1 < input.length ? input.charCodeAt(i + 1) : 0; - if(0xD800 <= x && x <= 0xDBFF && 0xDC00 <= y && y <= 0xDFFF) - { - x = 0x10000 + ((x & 0x03FF) << 10) + (y & 0x03FF); - i++; - } - - /* Encode output as utf-8 */ - if(x <= 0x7F) - output += String.fromCharCode(x); - else if(x <= 0x7FF) - output += String.fromCharCode(0xC0 | ((x >>> 6 ) & 0x1F), - 0x80 | ( x & 0x3F)); - else if(x <= 0xFFFF) - output += String.fromCharCode(0xE0 | ((x >>> 12) & 0x0F), - 0x80 | ((x >>> 6 ) & 0x3F), - 0x80 | ( x & 0x3F)); - else if(x <= 0x1FFFFF) - output += String.fromCharCode(0xF0 | ((x >>> 18) & 0x07), - 0x80 | ((x >>> 12) & 0x3F), - 0x80 | ((x >>> 6 ) & 0x3F), - 0x80 | ( x & 0x3F)); - } - return output; -} - -/* - * Encode a string as utf-16 - */ -function str2rstr_utf16le(input) -{ - var output = ""; - for(var i = 0; i < input.length; i++) - output += String.fromCharCode( input.charCodeAt(i) & 0xFF, - (input.charCodeAt(i) >>> 8) & 0xFF); - return output; -} - -function str2rstr_utf16be(input) -{ - var output = ""; - for(var i = 0; i < input.length; i++) - output += String.fromCharCode((input.charCodeAt(i) >>> 8) & 0xFF, - input.charCodeAt(i) & 0xFF); - return output; -} - -/* - * Convert a raw string to an array of big-endian words - * Characters >255 have their high-byte silently ignored. - */ -function rstr2binb(input) -{ - var output = Array(input.length >> 2); - for(var i = 0; i < output.length; i++) - output[i] = 0; - for(var i = 0; i < input.length * 8; i += 8) - output[i>>5] |= (input.charCodeAt(i / 8) & 0xFF) << (24 - i % 32); - return output; -} +const Hashes = require('@boop/hashes') -/* - * Convert an array of big-endian words to a string - */ -function binb2rstr(input) -{ - var output = ""; - for(var i = 0; i < input.length * 32; i += 8) - output += String.fromCharCode((input[i>>5] >>> (24 - i % 32)) & 0xFF); - return output; -} - -/* - * Calculate the SHA-512 of an array of big-endian dwords, and a bit length - */ -var sha512_k; -function binb_sha512(x, len) -{ - if(sha512_k == undefined) - { - //SHA512 constants - sha512_k = new Array( -new int64(0x428a2f98, -685199838), new int64(0x71374491, 0x23ef65cd), -new int64(-1245643825, -330482897), new int64(-373957723, -2121671748), -new int64(0x3956c25b, -213338824), new int64(0x59f111f1, -1241133031), -new int64(-1841331548, -1357295717), new int64(-1424204075, -630357736), -new int64(-670586216, -1560083902), new int64(0x12835b01, 0x45706fbe), -new int64(0x243185be, 0x4ee4b28c), new int64(0x550c7dc3, -704662302), -new int64(0x72be5d74, -226784913), new int64(-2132889090, 0x3b1696b1), -new int64(-1680079193, 0x25c71235), new int64(-1046744716, -815192428), -new int64(-459576895, -1628353838), new int64(-272742522, 0x384f25e3), -new int64(0xfc19dc6, -1953704523), new int64(0x240ca1cc, 0x77ac9c65), -new int64(0x2de92c6f, 0x592b0275), new int64(0x4a7484aa, 0x6ea6e483), -new int64(0x5cb0a9dc, -1119749164), new int64(0x76f988da, -2096016459), -new int64(-1740746414, -295247957), new int64(-1473132947, 0x2db43210), -new int64(-1341970488, -1728372417), new int64(-1084653625, -1091629340), -new int64(-958395405, 0x3da88fc2), new int64(-710438585, -1828018395), -new int64(0x6ca6351, -536640913), new int64(0x14292967, 0xa0e6e70), -new int64(0x27b70a85, 0x46d22ffc), new int64(0x2e1b2138, 0x5c26c926), -new int64(0x4d2c6dfc, 0x5ac42aed), new int64(0x53380d13, -1651133473), -new int64(0x650a7354, -1951439906), new int64(0x766a0abb, 0x3c77b2a8), -new int64(-2117940946, 0x47edaee6), new int64(-1838011259, 0x1482353b), -new int64(-1564481375, 0x4cf10364), new int64(-1474664885, -1136513023), -new int64(-1035236496, -789014639), new int64(-949202525, 0x654be30), -new int64(-778901479, -688958952), new int64(-694614492, 0x5565a910), -new int64(-200395387, 0x5771202a), new int64(0x106aa070, 0x32bbd1b8), -new int64(0x19a4c116, -1194143544), new int64(0x1e376c08, 0x5141ab53), -new int64(0x2748774c, -544281703), new int64(0x34b0bcb5, -509917016), -new int64(0x391c0cb3, -976659869), new int64(0x4ed8aa4a, -482243893), -new int64(0x5b9cca4f, 0x7763e373), new int64(0x682e6ff3, -692930397), -new int64(0x748f82ee, 0x5defb2fc), new int64(0x78a5636f, 0x43172f60), -new int64(-2067236844, -1578062990), new int64(-1933114872, 0x1a6439ec), -new int64(-1866530822, 0x23631e28), new int64(-1538233109, -561857047), -new int64(-1090935817, -1295615723), new int64(-965641998, -479046869), -new int64(-903397682, -366583396), new int64(-779700025, 0x21c0c207), -new int64(-354779690, -840897762), new int64(-176337025, -294727304), -new int64(0x6f067aa, 0x72176fba), new int64(0xa637dc5, -1563912026), -new int64(0x113f9804, -1090974290), new int64(0x1b710b35, 0x131c471b), -new int64(0x28db77f5, 0x23047d84), new int64(0x32caab7b, 0x40c72493), -new int64(0x3c9ebe0a, 0x15c9bebc), new int64(0x431d67c4, -1676669620), -new int64(0x4cc5d4be, -885112138), new int64(0x597f299c, -60457430), -new int64(0x5fcb6fab, 0x3ad6faec), new int64(0x6c44198c, 0x4a475817)); - } - - //Initial hash values - var H = new Array( -new int64(0x6a09e667, -205731576), -new int64(-1150833019, -2067093701), -new int64(0x3c6ef372, -23791573), -new int64(-1521486534, 0x5f1d36f1), -new int64(0x510e527f, -1377402159), -new int64(-1694144372, 0x2b3e6c1f), -new int64(0x1f83d9ab, -79577749), -new int64(0x5be0cd19, 0x137e2179)); - - var T1 = new int64(0, 0), - T2 = new int64(0, 0), - a = new int64(0,0), - b = new int64(0,0), - c = new int64(0,0), - d = new int64(0,0), - e = new int64(0,0), - f = new int64(0,0), - g = new int64(0,0), - h = new int64(0,0), - //Temporary variables not specified by the document - s0 = new int64(0, 0), - s1 = new int64(0, 0), - Ch = new int64(0, 0), - Maj = new int64(0, 0), - r1 = new int64(0, 0), - r2 = new int64(0, 0), - r3 = new int64(0, 0); - var j, i; - var W = new Array(80); - for(i=0; i<80; i++) - W[i] = new int64(0, 0); - - // append padding to the source string. The format is described in the FIPS. - x[len >> 5] |= 0x80 << (24 - (len & 0x1f)); - x[((len + 128 >> 10)<< 5) + 31] = len; - - for(i = 0; i=32 -//The function revrrot() is for that -function int64rrot(dst, x, shift) -{ - dst.l = (x.l >>> shift) | (x.h << (32-shift)); - dst.h = (x.h >>> shift) | (x.l << (32-shift)); -} - -//Reverses the dwords of the source and then rotates right by shift. -//This is equivalent to rotation by 32+shift -function int64revrrot(dst, x, shift) -{ - dst.l = (x.h >>> shift) | (x.l << (32-shift)); - dst.h = (x.l >>> shift) | (x.h << (32-shift)); -} - -//Bitwise-shifts right a 64-bit number by shift -//Won't handle shift>=32, but it's never needed in SHA512 -function int64shr(dst, x, shift) -{ - dst.l = (x.l >>> shift) | (x.h << (32-shift)); - dst.h = (x.h >>> shift); -} - -//Adds two 64-bit numbers -//Like the original implementation, does not rely on 32-bit operations -function int64add(dst, x, y) -{ - var w0 = (x.l & 0xffff) + (y.l & 0xffff); - var w1 = (x.l >>> 16) + (y.l >>> 16) + (w0 >>> 16); - var w2 = (x.h & 0xffff) + (y.h & 0xffff) + (w1 >>> 16); - var w3 = (x.h >>> 16) + (y.h >>> 16) + (w2 >>> 16); - dst.l = (w0 & 0xffff) | (w1 << 16); - dst.h = (w2 & 0xffff) | (w3 << 16); -} - -//Same, except with 4 addends. Works faster than adding them one by one. -function int64add4(dst, a, b, c, d) -{ - var w0 = (a.l & 0xffff) + (b.l & 0xffff) + (c.l & 0xffff) + (d.l & 0xffff); - var w1 = (a.l >>> 16) + (b.l >>> 16) + (c.l >>> 16) + (d.l >>> 16) + (w0 >>> 16); - var w2 = (a.h & 0xffff) + (b.h & 0xffff) + (c.h & 0xffff) + (d.h & 0xffff) + (w1 >>> 16); - var w3 = (a.h >>> 16) + (b.h >>> 16) + (c.h >>> 16) + (d.h >>> 16) + (w2 >>> 16); - dst.l = (w0 & 0xffff) | (w1 << 16); - dst.h = (w2 & 0xffff) | (w3 << 16); -} - -//Same, except with 5 addends -function int64add5(dst, a, b, c, d, e) -{ - var w0 = (a.l & 0xffff) + (b.l & 0xffff) + (c.l & 0xffff) + (d.l & 0xffff) + (e.l & 0xffff); - var w1 = (a.l >>> 16) + (b.l >>> 16) + (c.l >>> 16) + (d.l >>> 16) + (e.l >>> 16) + (w0 >>> 16); - var w2 = (a.h & 0xffff) + (b.h & 0xffff) + (c.h & 0xffff) + (d.h & 0xffff) + (e.h & 0xffff) + (w1 >>> 16); - var w3 = (a.h >>> 16) + (b.h >>> 16) + (c.h >>> 16) + (d.h >>> 16) + (e.h >>> 16) + (w2 >>> 16); - dst.l = (w0 & 0xffff) | (w1 << 16); - dst.h = (w2 & 0xffff) | (w3 << 16); +function main(state) { + var SHA512 = new Hashes.SHA512; + state.text = SHA512.hex(state.text) } diff --git a/Boop/Boop/scripts/lib/hashes.js b/Boop/Boop/scripts/lib/hashes.js new file mode 100644 index 00000000..9e62254d --- /dev/null +++ b/Boop/Boop/scripts/lib/hashes.js @@ -0,0 +1,1765 @@ +/** + * jshashes - https://github.com/h2non/jshashes + * Released under the "New BSD" license + * + * Algorithms specification: + * + * MD5 - http://www.ietf.org/rfc/rfc1321.txt + * RIPEMD-160 - http://homes.esat.kuleuven.be/~bosselae/ripemd160.html + * SHA1 - http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf + * SHA256 - http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf + * SHA512 - http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf + * HMAC - http://www.ietf.org/rfc/rfc2104.txt + */ +(function() { + var Hashes; + + function utf8Encode(str) { + var x, y, output = '', + i = -1, + l; + + if (str && str.length) { + l = str.length; + while ((i += 1) < l) { + /* Decode utf-16 surrogate pairs */ + x = str.charCodeAt(i); + y = i + 1 < l ? str.charCodeAt(i + 1) : 0; + if (0xD800 <= x && x <= 0xDBFF && 0xDC00 <= y && y <= 0xDFFF) { + x = 0x10000 + ((x & 0x03FF) << 10) + (y & 0x03FF); + i += 1; + } + /* Encode output as utf-8 */ + if (x <= 0x7F) { + output += String.fromCharCode(x); + } else if (x <= 0x7FF) { + output += String.fromCharCode(0xC0 | ((x >>> 6) & 0x1F), + 0x80 | (x & 0x3F)); + } else if (x <= 0xFFFF) { + output += String.fromCharCode(0xE0 | ((x >>> 12) & 0x0F), + 0x80 | ((x >>> 6) & 0x3F), + 0x80 | (x & 0x3F)); + } else if (x <= 0x1FFFFF) { + output += String.fromCharCode(0xF0 | ((x >>> 18) & 0x07), + 0x80 | ((x >>> 12) & 0x3F), + 0x80 | ((x >>> 6) & 0x3F), + 0x80 | (x & 0x3F)); + } + } + } + return output; + } + + function utf8Decode(str) { + var i, ac, c1, c2, c3, arr = [], + l; + i = ac = c1 = c2 = c3 = 0; + + if (str && str.length) { + l = str.length; + str += ''; + + while (i < l) { + c1 = str.charCodeAt(i); + ac += 1; + if (c1 < 128) { + arr[ac] = String.fromCharCode(c1); + i += 1; + } else if (c1 > 191 && c1 < 224) { + c2 = str.charCodeAt(i + 1); + arr[ac] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63)); + i += 2; + } else { + c2 = str.charCodeAt(i + 1); + c3 = str.charCodeAt(i + 2); + arr[ac] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); + i += 3; + } + } + } + return arr.join(''); + } + + /** + * Add integers, wrapping at 2^32. This uses 16-bit operations internally + * to work around bugs in some JS interpreters. + */ + + function safe_add(x, y) { + var lsw = (x & 0xFFFF) + (y & 0xFFFF), + msw = (x >> 16) + (y >> 16) + (lsw >> 16); + return (msw << 16) | (lsw & 0xFFFF); + } + + /** + * Bitwise rotate a 32-bit number to the left. + */ + + function bit_rol(num, cnt) { + return (num << cnt) | (num >>> (32 - cnt)); + } + + /** + * Convert a raw string to a hex string + */ + + function rstr2hex(input, hexcase) { + var hex_tab = hexcase ? '0123456789ABCDEF' : '0123456789abcdef', + output = '', + x, i = 0, + l = input.length; + for (; i < l; i += 1) { + x = input.charCodeAt(i); + output += hex_tab.charAt((x >>> 4) & 0x0F) + hex_tab.charAt(x & 0x0F); + } + return output; + } + + /** + * Encode a string as utf-16 + */ + + function str2rstr_utf16le(input) { + var i, l = input.length, + output = ''; + for (i = 0; i < l; i += 1) { + output += String.fromCharCode(input.charCodeAt(i) & 0xFF, (input.charCodeAt(i) >>> 8) & 0xFF); + } + return output; + } + + function str2rstr_utf16be(input) { + var i, l = input.length, + output = ''; + for (i = 0; i < l; i += 1) { + output += String.fromCharCode((input.charCodeAt(i) >>> 8) & 0xFF, input.charCodeAt(i) & 0xFF); + } + return output; + } + + /** + * Convert an array of big-endian words to a string + */ + + function binb2rstr(input) { + var i, l = input.length * 32, + output = ''; + for (i = 0; i < l; i += 8) { + output += String.fromCharCode((input[i >> 5] >>> (24 - i % 32)) & 0xFF); + } + return output; + } + + /** + * Convert an array of little-endian words to a string + */ + + function binl2rstr(input) { + var i, l = input.length * 32, + output = ''; + for (i = 0; i < l; i += 8) { + output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xFF); + } + return output; + } + + /** + * Convert a raw string to an array of little-endian words + * Characters >255 have their high-byte silently ignored. + */ + + function rstr2binl(input) { + var i, l = input.length * 8, + output = Array(input.length >> 2), + lo = output.length; + for (i = 0; i < lo; i += 1) { + output[i] = 0; + } + for (i = 0; i < l; i += 8) { + output[i >> 5] |= (input.charCodeAt(i / 8) & 0xFF) << (i % 32); + } + return output; + } + + /** + * Convert a raw string to an array of big-endian words + * Characters >255 have their high-byte silently ignored. + */ + + function rstr2binb(input) { + var i, l = input.length * 8, + output = Array(input.length >> 2), + lo = output.length; + for (i = 0; i < lo; i += 1) { + output[i] = 0; + } + for (i = 0; i < l; i += 8) { + output[i >> 5] |= (input.charCodeAt(i / 8) & 0xFF) << (24 - i % 32); + } + return output; + } + + /** + * Convert a raw string to an arbitrary string encoding + */ + + function rstr2any(input, encoding) { + var divisor = encoding.length, + remainders = Array(), + i, q, x, ld, quotient, dividend, output, full_length; + + /* Convert to an array of 16-bit big-endian values, forming the dividend */ + dividend = Array(Math.ceil(input.length / 2)); + ld = dividend.length; + for (i = 0; i < ld; i += 1) { + dividend[i] = (input.charCodeAt(i * 2) << 8) | input.charCodeAt(i * 2 + 1); + } + + /** + * Repeatedly perform a long division. The binary array forms the dividend, + * the length of the encoding is the divisor. Once computed, the quotient + * forms the dividend for the next step. We stop when the dividend is zerHashes. + * All remainders are stored for later use. + */ + while (dividend.length > 0) { + quotient = Array(); + x = 0; + for (i = 0; i < dividend.length; i += 1) { + x = (x << 16) + dividend[i]; + q = Math.floor(x / divisor); + x -= q * divisor; + if (quotient.length > 0 || q > 0) { + quotient[quotient.length] = q; + } + } + remainders[remainders.length] = x; + dividend = quotient; + } + + /* Convert the remainders to the output string */ + output = ''; + for (i = remainders.length - 1; i >= 0; i--) { + output += encoding.charAt(remainders[i]); + } + + /* Append leading zero equivalents */ + full_length = Math.ceil(input.length * 8 / (Math.log(encoding.length) / Math.log(2))); + for (i = output.length; i < full_length; i += 1) { + output = encoding[0] + output; + } + return output; + } + + /** + * Convert a raw string to a base-64 string + */ + + function rstr2b64(input, b64pad) { + var tab = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', + output = '', + len = input.length, + i, j, triplet; + b64pad = b64pad || '='; + for (i = 0; i < len; i += 3) { + triplet = (input.charCodeAt(i) << 16) | (i + 1 < len ? input.charCodeAt(i + 1) << 8 : 0) | (i + 2 < len ? input.charCodeAt(i + 2) : 0); + for (j = 0; j < 4; j += 1) { + if (i * 8 + j * 6 > input.length * 8) { + output += b64pad; + } else { + output += tab.charAt((triplet >>> 6 * (3 - j)) & 0x3F); + } + } + } + return output; + } + + Hashes = { + /** + * @property {String} version + * @readonly + */ + VERSION: '1.0.6', + /** + * @member Hashes + * @class Base64 + * @constructor + */ + Base64: function() { + // private properties + var tab = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', + pad = '=', // default pad according with the RFC standard + url = false, // URL encoding support @todo + utf8 = true; // by default enable UTF-8 support encoding + + // public method for encoding + this.encode = function(input) { + var i, j, triplet, + output = '', + len = input.length; + + pad = pad || '='; + input = (utf8) ? utf8Encode(input) : input; + + for (i = 0; i < len; i += 3) { + triplet = (input.charCodeAt(i) << 16) | (i + 1 < len ? input.charCodeAt(i + 1) << 8 : 0) | (i + 2 < len ? input.charCodeAt(i + 2) : 0); + for (j = 0; j < 4; j += 1) { + if (i * 8 + j * 6 > len * 8) { + output += pad; + } else { + output += tab.charAt((triplet >>> 6 * (3 - j)) & 0x3F); + } + } + } + return output; + }; + + // public method for decoding + this.decode = function(input) { + // var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; + var i, o1, o2, o3, h1, h2, h3, h4, bits, ac, + dec = '', + arr = []; + if (!input) { + return input; + } + + i = ac = 0; + input = input.replace(new RegExp('\\' + pad, 'gi'), ''); // use '=' + //input += ''; + + do { // unpack four hexets into three octets using index points in b64 + h1 = tab.indexOf(input.charAt(i += 1)); + h2 = tab.indexOf(input.charAt(i += 1)); + h3 = tab.indexOf(input.charAt(i += 1)); + h4 = tab.indexOf(input.charAt(i += 1)); + + bits = h1 << 18 | h2 << 12 | h3 << 6 | h4; + + o1 = bits >> 16 & 0xff; + o2 = bits >> 8 & 0xff; + o3 = bits & 0xff; + ac += 1; + + if (h3 === 64) { + arr[ac] = String.fromCharCode(o1); + } else if (h4 === 64) { + arr[ac] = String.fromCharCode(o1, o2); + } else { + arr[ac] = String.fromCharCode(o1, o2, o3); + } + } while (i < input.length); + + dec = arr.join(''); + dec = (utf8) ? utf8Decode(dec) : dec; + + return dec; + }; + + // set custom pad string + this.setPad = function(str) { + pad = str || pad; + return this; + }; + // set custom tab string characters + this.setTab = function(str) { + tab = str || tab; + return this; + }; + this.setUTF8 = function(bool) { + if (typeof bool === 'boolean') { + utf8 = bool; + } + return this; + }; + }, + + /** + * CRC-32 calculation + * @member Hashes + * @method CRC32 + * @static + * @param {String} str Input String + * @return {String} + */ + CRC32: function(str) { + var crc = 0, + x = 0, + y = 0, + table, i, iTop; + str = utf8Encode(str); + + table = [ + '00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 ', + '79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 ', + '84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F ', + '63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD ', + 'A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC ', + '51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 ', + 'B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 ', + '06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 ', + 'E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 ', + '12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 ', + 'D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 ', + '33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 ', + 'CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 ', + '9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E ', + '7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D ', + '806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 ', + '60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA ', + 'AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 ', + '5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 ', + 'B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 ', + '05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 ', + 'F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA ', + '11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 ', + 'D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F ', + '30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E ', + 'C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D' + ].join(''); + + crc = crc ^ (-1); + for (i = 0, iTop = str.length; i < iTop; i += 1) { + y = (crc ^ str.charCodeAt(i)) & 0xFF; + x = '0x' + table.substr(y * 9, 8); + crc = (crc >>> 8) ^ x; + } + // always return a positive number (that's what >>> 0 does) + return (crc ^ (-1)) >>> 0; + }, + /** + * @member Hashes + * @class MD5 + * @constructor + * @param {Object} [config] + * + * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message + * Digest Algorithm, as defined in RFC 1321. + * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009 + * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet + * See for more infHashes. + */ + MD5: function(options) { + /** + * Private config properties. You may need to tweak these to be compatible with + * the server-side, but the defaults work in most cases. + * See {@link Hashes.MD5#method-setUpperCase} and {@link Hashes.SHA1#method-setUpperCase} + */ + var hexcase = (options && typeof options.uppercase === 'boolean') ? options.uppercase : false, // hexadecimal output case format. false - lowercase; true - uppercase + b64pad = (options && typeof options.pad === 'string') ? options.pad : '=', // base-64 pad character. Defaults to '=' for strict RFC compliance + utf8 = (options && typeof options.utf8 === 'boolean') ? options.utf8 : true; // enable/disable utf8 encoding + + // privileged (public) methods + this.hex = function(s) { + return rstr2hex(rstr(s, utf8), hexcase); + }; + this.b64 = function(s) { + return rstr2b64(rstr(s), b64pad); + }; + this.any = function(s, e) { + return rstr2any(rstr(s, utf8), e); + }; + this.raw = function(s) { + return rstr(s, utf8); + }; + this.hex_hmac = function(k, d) { + return rstr2hex(rstr_hmac(k, d), hexcase); + }; + this.b64_hmac = function(k, d) { + return rstr2b64(rstr_hmac(k, d), b64pad); + }; + this.any_hmac = function(k, d, e) { + return rstr2any(rstr_hmac(k, d), e); + }; + /** + * Perform a simple self-test to see if the VM is working + * @return {String} Hexadecimal hash sample + */ + this.vm_test = function() { + return hex('abc').toLowerCase() === '900150983cd24fb0d6963f7d28e17f72'; + }; + /** + * Enable/disable uppercase hexadecimal returned string + * @param {Boolean} + * @return {Object} this + */ + this.setUpperCase = function(a) { + if (typeof a === 'boolean') { + hexcase = a; + } + return this; + }; + /** + * Defines a base64 pad string + * @param {String} Pad + * @return {Object} this + */ + this.setPad = function(a) { + b64pad = a || b64pad; + return this; + }; + /** + * Defines a base64 pad string + * @param {Boolean} + * @return {Object} [this] + */ + this.setUTF8 = function(a) { + if (typeof a === 'boolean') { + utf8 = a; + } + return this; + }; + + // private methods + + /** + * Calculate the MD5 of a raw string + */ + + function rstr(s) { + s = (utf8) ? utf8Encode(s) : s; + return binl2rstr(binl(rstr2binl(s), s.length * 8)); + } + + /** + * Calculate the HMAC-MD5, of a key and some data (raw strings) + */ + + function rstr_hmac(key, data) { + var bkey, ipad, opad, hash, i; + + key = (utf8) ? utf8Encode(key) : key; + data = (utf8) ? utf8Encode(data) : data; + bkey = rstr2binl(key); + if (bkey.length > 16) { + bkey = binl(bkey, key.length * 8); + } + + ipad = Array(16), opad = Array(16); + for (i = 0; i < 16; i += 1) { + ipad[i] = bkey[i] ^ 0x36363636; + opad[i] = bkey[i] ^ 0x5C5C5C5C; + } + hash = binl(ipad.concat(rstr2binl(data)), 512 + data.length * 8); + return binl2rstr(binl(opad.concat(hash), 512 + 128)); + } + + /** + * Calculate the MD5 of an array of little-endian words, and a bit length. + */ + + function binl(x, len) { + var i, olda, oldb, oldc, oldd, + a = 1732584193, + b = -271733879, + c = -1732584194, + d = 271733878; + + /* append padding */ + x[len >> 5] |= 0x80 << ((len) % 32); + x[(((len + 64) >>> 9) << 4) + 14] = len; + + for (i = 0; i < x.length; i += 16) { + olda = a; + oldb = b; + oldc = c; + oldd = d; + + a = md5_ff(a, b, c, d, x[i + 0], 7, -680876936); + d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586); + c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819); + b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330); + a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897); + d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426); + c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341); + b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983); + a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416); + d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417); + c = md5_ff(c, d, a, b, x[i + 10], 17, -42063); + b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162); + a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682); + d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101); + c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290); + b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329); + + a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510); + d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632); + c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713); + b = md5_gg(b, c, d, a, x[i + 0], 20, -373897302); + a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691); + d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083); + c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335); + b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848); + a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438); + d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690); + c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961); + b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501); + a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467); + d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784); + c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473); + b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734); + + a = md5_hh(a, b, c, d, x[i + 5], 4, -378558); + d = md5_hh(d, a, b, c, x[i + 8], 11, -2022574463); + c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562); + b = md5_hh(b, c, d, a, x[i + 14], 23, -35309556); + a = md5_hh(a, b, c, d, x[i + 1], 4, -1530992060); + d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353); + c = md5_hh(c, d, a, b, x[i + 7], 16, -155497632); + b = md5_hh(b, c, d, a, x[i + 10], 23, -1094730640); + a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174); + d = md5_hh(d, a, b, c, x[i + 0], 11, -358537222); + c = md5_hh(c, d, a, b, x[i + 3], 16, -722521979); + b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189); + a = md5_hh(a, b, c, d, x[i + 9], 4, -640364487); + d = md5_hh(d, a, b, c, x[i + 12], 11, -421815835); + c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520); + b = md5_hh(b, c, d, a, x[i + 2], 23, -995338651); + + a = md5_ii(a, b, c, d, x[i + 0], 6, -198630844); + d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415); + c = md5_ii(c, d, a, b, x[i + 14], 15, -1416354905); + b = md5_ii(b, c, d, a, x[i + 5], 21, -57434055); + a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571); + d = md5_ii(d, a, b, c, x[i + 3], 10, -1894986606); + c = md5_ii(c, d, a, b, x[i + 10], 15, -1051523); + b = md5_ii(b, c, d, a, x[i + 1], 21, -2054922799); + a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359); + d = md5_ii(d, a, b, c, x[i + 15], 10, -30611744); + c = md5_ii(c, d, a, b, x[i + 6], 15, -1560198380); + b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649); + a = md5_ii(a, b, c, d, x[i + 4], 6, -145523070); + d = md5_ii(d, a, b, c, x[i + 11], 10, -1120210379); + c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259); + b = md5_ii(b, c, d, a, x[i + 9], 21, -343485551); + + a = safe_add(a, olda); + b = safe_add(b, oldb); + c = safe_add(c, oldc); + d = safe_add(d, oldd); + } + return Array(a, b, c, d); + } + + /** + * These functions implement the four basic operations the algorithm uses. + */ + + function md5_cmn(q, a, b, x, s, t) { + return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b); + } + + function md5_ff(a, b, c, d, x, s, t) { + return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t); + } + + function md5_gg(a, b, c, d, x, s, t) { + return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t); + } + + function md5_hh(a, b, c, d, x, s, t) { + return md5_cmn(b ^ c ^ d, a, b, x, s, t); + } + + function md5_ii(a, b, c, d, x, s, t) { + return md5_cmn(c ^ (b | (~d)), a, b, x, s, t); + } + }, + /** + * @member Hashes + * @class Hashes.SHA1 + * @param {Object} [config] + * @constructor + * + * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined in FIPS 180-1 + * Version 2.2 Copyright Paul Johnston 2000 - 2009. + * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet + * See http://pajhome.org.uk/crypt/md5 for details. + */ + SHA1: function(options) { + /** + * Private config properties. You may need to tweak these to be compatible with + * the server-side, but the defaults work in most cases. + * See {@link Hashes.MD5#method-setUpperCase} and {@link Hashes.SHA1#method-setUpperCase} + */ + var hexcase = (options && typeof options.uppercase === 'boolean') ? options.uppercase : false, // hexadecimal output case format. false - lowercase; true - uppercase + b64pad = (options && typeof options.pad === 'string') ? options.pad : '=', // base-64 pad character. Defaults to '=' for strict RFC compliance + utf8 = (options && typeof options.utf8 === 'boolean') ? options.utf8 : true; // enable/disable utf8 encoding + + // public methods + this.hex = function(s) { + return rstr2hex(rstr(s, utf8), hexcase); + }; + this.b64 = function(s) { + return rstr2b64(rstr(s, utf8), b64pad); + }; + this.any = function(s, e) { + return rstr2any(rstr(s, utf8), e); + }; + this.raw = function(s) { + return rstr(s, utf8); + }; + this.hex_hmac = function(k, d) { + return rstr2hex(rstr_hmac(k, d)); + }; + this.b64_hmac = function(k, d) { + return rstr2b64(rstr_hmac(k, d), b64pad); + }; + this.any_hmac = function(k, d, e) { + return rstr2any(rstr_hmac(k, d), e); + }; + /** + * Perform a simple self-test to see if the VM is working + * @return {String} Hexadecimal hash sample + * @public + */ + this.vm_test = function() { + return hex('abc').toLowerCase() === '900150983cd24fb0d6963f7d28e17f72'; + }; + /** + * @description Enable/disable uppercase hexadecimal returned string + * @param {boolean} + * @return {Object} this + * @public + */ + this.setUpperCase = function(a) { + if (typeof a === 'boolean') { + hexcase = a; + } + return this; + }; + /** + * @description Defines a base64 pad string + * @param {string} Pad + * @return {Object} this + * @public + */ + this.setPad = function(a) { + b64pad = a || b64pad; + return this; + }; + /** + * @description Defines a base64 pad string + * @param {boolean} + * @return {Object} this + * @public + */ + this.setUTF8 = function(a) { + if (typeof a === 'boolean') { + utf8 = a; + } + return this; + }; + + // private methods + + /** + * Calculate the SHA-512 of a raw string + */ + + function rstr(s) { + s = (utf8) ? utf8Encode(s) : s; + return binb2rstr(binb(rstr2binb(s), s.length * 8)); + } + + /** + * Calculate the HMAC-SHA1 of a key and some data (raw strings) + */ + + function rstr_hmac(key, data) { + var bkey, ipad, opad, i, hash; + key = (utf8) ? utf8Encode(key) : key; + data = (utf8) ? utf8Encode(data) : data; + bkey = rstr2binb(key); + + if (bkey.length > 16) { + bkey = binb(bkey, key.length * 8); + } + ipad = Array(16), opad = Array(16); + for (i = 0; i < 16; i += 1) { + ipad[i] = bkey[i] ^ 0x36363636; + opad[i] = bkey[i] ^ 0x5C5C5C5C; + } + hash = binb(ipad.concat(rstr2binb(data)), 512 + data.length * 8); + return binb2rstr(binb(opad.concat(hash), 512 + 160)); + } + + /** + * Calculate the SHA-1 of an array of big-endian words, and a bit length + */ + + function binb(x, len) { + var i, j, t, olda, oldb, oldc, oldd, olde, + w = Array(80), + a = 1732584193, + b = -271733879, + c = -1732584194, + d = 271733878, + e = -1009589776; + + /* append padding */ + x[len >> 5] |= 0x80 << (24 - len % 32); + x[((len + 64 >> 9) << 4) + 15] = len; + + for (i = 0; i < x.length; i += 16) { + olda = a; + oldb = b; + oldc = c; + oldd = d; + olde = e; + + for (j = 0; j < 80; j += 1) { + if (j < 16) { + w[j] = x[i + j]; + } else { + w[j] = bit_rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1); + } + t = safe_add(safe_add(bit_rol(a, 5), sha1_ft(j, b, c, d)), + safe_add(safe_add(e, w[j]), sha1_kt(j))); + e = d; + d = c; + c = bit_rol(b, 30); + b = a; + a = t; + } + + a = safe_add(a, olda); + b = safe_add(b, oldb); + c = safe_add(c, oldc); + d = safe_add(d, oldd); + e = safe_add(e, olde); + } + return Array(a, b, c, d, e); + } + + /** + * Perform the appropriate triplet combination function for the current + * iteration + */ + + function sha1_ft(t, b, c, d) { + if (t < 20) { + return (b & c) | ((~b) & d); + } + if (t < 40) { + return b ^ c ^ d; + } + if (t < 60) { + return (b & c) | (b & d) | (c & d); + } + return b ^ c ^ d; + } + + /** + * Determine the appropriate additive constant for the current iteration + */ + + function sha1_kt(t) { + return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 : + (t < 60) ? -1894007588 : -899497514; + } + }, + /** + * @class Hashes.SHA256 + * @param {config} + * + * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined in FIPS 180-2 + * Version 2.2 Copyright Angel Marin, Paul Johnston 2000 - 2009. + * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet + * See http://pajhome.org.uk/crypt/md5 for details. + * Also http://anmar.eu.org/projects/jssha2/ + */ + SHA256: function(options) { + /** + * Private properties configuration variables. You may need to tweak these to be compatible with + * the server-side, but the defaults work in most cases. + * @see this.setUpperCase() method + * @see this.setPad() method + */ + var hexcase = (options && typeof options.uppercase === 'boolean') ? options.uppercase : false, // hexadecimal output case format. false - lowercase; true - uppercase */ + b64pad = (options && typeof options.pad === 'string') ? options.pad : '=', + /* base-64 pad character. Default '=' for strict RFC compliance */ + utf8 = (options && typeof options.utf8 === 'boolean') ? options.utf8 : true, + /* enable/disable utf8 encoding */ + sha256_K; + + /* privileged (public) methods */ + this.hex = function(s) { + return rstr2hex(rstr(s, utf8)); + }; + this.b64 = function(s) { + return rstr2b64(rstr(s, utf8), b64pad); + }; + this.any = function(s, e) { + return rstr2any(rstr(s, utf8), e); + }; + this.raw = function(s) { + return rstr(s, utf8); + }; + this.hex_hmac = function(k, d) { + return rstr2hex(rstr_hmac(k, d)); + }; + this.b64_hmac = function(k, d) { + return rstr2b64(rstr_hmac(k, d), b64pad); + }; + this.any_hmac = function(k, d, e) { + return rstr2any(rstr_hmac(k, d), e); + }; + /** + * Perform a simple self-test to see if the VM is working + * @return {String} Hexadecimal hash sample + * @public + */ + this.vm_test = function() { + return hex('abc').toLowerCase() === '900150983cd24fb0d6963f7d28e17f72'; + }; + /** + * Enable/disable uppercase hexadecimal returned string + * @param {boolean} + * @return {Object} this + * @public + */ + this.setUpperCase = function(a) { + if (typeof a === 'boolean') { + hexcase = a; + } + return this; + }; + /** + * @description Defines a base64 pad string + * @param {string} Pad + * @return {Object} this + * @public + */ + this.setPad = function(a) { + b64pad = a || b64pad; + return this; + }; + /** + * Defines a base64 pad string + * @param {boolean} + * @return {Object} this + * @public + */ + this.setUTF8 = function(a) { + if (typeof a === 'boolean') { + utf8 = a; + } + return this; + }; + + // private methods + + /** + * Calculate the SHA-512 of a raw string + */ + + function rstr(s, utf8) { + s = (utf8) ? utf8Encode(s) : s; + return binb2rstr(binb(rstr2binb(s), s.length * 8)); + } + + /** + * Calculate the HMAC-sha256 of a key and some data (raw strings) + */ + + function rstr_hmac(key, data) { + key = (utf8) ? utf8Encode(key) : key; + data = (utf8) ? utf8Encode(data) : data; + var hash, i = 0, + bkey = rstr2binb(key), + ipad = Array(16), + opad = Array(16); + + if (bkey.length > 16) { + bkey = binb(bkey, key.length * 8); + } + + for (; i < 16; i += 1) { + ipad[i] = bkey[i] ^ 0x36363636; + opad[i] = bkey[i] ^ 0x5C5C5C5C; + } + + hash = binb(ipad.concat(rstr2binb(data)), 512 + data.length * 8); + return binb2rstr(binb(opad.concat(hash), 512 + 256)); + } + + /* + * Main sha256 function, with its support functions + */ + + function sha256_S(X, n) { + return (X >>> n) | (X << (32 - n)); + } + + function sha256_R(X, n) { + return (X >>> n); + } + + function sha256_Ch(x, y, z) { + return ((x & y) ^ ((~x) & z)); + } + + function sha256_Maj(x, y, z) { + return ((x & y) ^ (x & z) ^ (y & z)); + } + + function sha256_Sigma0256(x) { + return (sha256_S(x, 2) ^ sha256_S(x, 13) ^ sha256_S(x, 22)); + } + + function sha256_Sigma1256(x) { + return (sha256_S(x, 6) ^ sha256_S(x, 11) ^ sha256_S(x, 25)); + } + + function sha256_Gamma0256(x) { + return (sha256_S(x, 7) ^ sha256_S(x, 18) ^ sha256_R(x, 3)); + } + + function sha256_Gamma1256(x) { + return (sha256_S(x, 17) ^ sha256_S(x, 19) ^ sha256_R(x, 10)); + } + + function sha256_Sigma0512(x) { + return (sha256_S(x, 28) ^ sha256_S(x, 34) ^ sha256_S(x, 39)); + } + + function sha256_Sigma1512(x) { + return (sha256_S(x, 14) ^ sha256_S(x, 18) ^ sha256_S(x, 41)); + } + + function sha256_Gamma0512(x) { + return (sha256_S(x, 1) ^ sha256_S(x, 8) ^ sha256_R(x, 7)); + } + + function sha256_Gamma1512(x) { + return (sha256_S(x, 19) ^ sha256_S(x, 61) ^ sha256_R(x, 6)); + } + + sha256_K = [ + 1116352408, 1899447441, -1245643825, -373957723, 961987163, 1508970993, -1841331548, -1424204075, -670586216, 310598401, 607225278, 1426881987, + 1925078388, -2132889090, -1680079193, -1046744716, -459576895, -272742522, + 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, -1740746414, -1473132947, -1341970488, -1084653625, -958395405, -710438585, + 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, + 1695183700, 1986661051, -2117940946, -1838011259, -1564481375, -1474664885, -1035236496, -949202525, -778901479, -694614492, -200395387, 275423344, + 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, + 1537002063, 1747873779, 1955562222, 2024104815, -2067236844, -1933114872, -1866530822, -1538233109, -1090935817, -965641998 + ]; + + function binb(m, l) { + var HASH = [1779033703, -1150833019, 1013904242, -1521486534, + 1359893119, -1694144372, 528734635, 1541459225 + ]; + var W = new Array(64); + var a, b, c, d, e, f, g, h; + var i, j, T1, T2; + + /* append padding */ + m[l >> 5] |= 0x80 << (24 - l % 32); + m[((l + 64 >> 9) << 4) + 15] = l; + + for (i = 0; i < m.length; i += 16) { + a = HASH[0]; + b = HASH[1]; + c = HASH[2]; + d = HASH[3]; + e = HASH[4]; + f = HASH[5]; + g = HASH[6]; + h = HASH[7]; + + for (j = 0; j < 64; j += 1) { + if (j < 16) { + W[j] = m[j + i]; + } else { + W[j] = safe_add(safe_add(safe_add(sha256_Gamma1256(W[j - 2]), W[j - 7]), + sha256_Gamma0256(W[j - 15])), W[j - 16]); + } + + T1 = safe_add(safe_add(safe_add(safe_add(h, sha256_Sigma1256(e)), sha256_Ch(e, f, g)), + sha256_K[j]), W[j]); + T2 = safe_add(sha256_Sigma0256(a), sha256_Maj(a, b, c)); + h = g; + g = f; + f = e; + e = safe_add(d, T1); + d = c; + c = b; + b = a; + a = safe_add(T1, T2); + } + + HASH[0] = safe_add(a, HASH[0]); + HASH[1] = safe_add(b, HASH[1]); + HASH[2] = safe_add(c, HASH[2]); + HASH[3] = safe_add(d, HASH[3]); + HASH[4] = safe_add(e, HASH[4]); + HASH[5] = safe_add(f, HASH[5]); + HASH[6] = safe_add(g, HASH[6]); + HASH[7] = safe_add(h, HASH[7]); + } + return HASH; + } + + }, + + /** + * @class Hashes.SHA512 + * @param {config} + * + * A JavaScript implementation of the Secure Hash Algorithm, SHA-512, as defined in FIPS 180-2 + * Version 2.2 Copyright Anonymous Contributor, Paul Johnston 2000 - 2009. + * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet + * See http://pajhome.org.uk/crypt/md5 for details. + */ + SHA512: function(options) { + /** + * Private properties configuration variables. You may need to tweak these to be compatible with + * the server-side, but the defaults work in most cases. + * @see this.setUpperCase() method + * @see this.setPad() method + */ + var hexcase = (options && typeof options.uppercase === 'boolean') ? options.uppercase : false, + /* hexadecimal output case format. false - lowercase; true - uppercase */ + b64pad = (options && typeof options.pad === 'string') ? options.pad : '=', + /* base-64 pad character. Default '=' for strict RFC compliance */ + utf8 = (options && typeof options.utf8 === 'boolean') ? options.utf8 : true, + /* enable/disable utf8 encoding */ + sha512_k; + + /* privileged (public) methods */ + this.hex = function(s) { + return rstr2hex(rstr(s)); + }; + this.b64 = function(s) { + return rstr2b64(rstr(s), b64pad); + }; + this.any = function(s, e) { + return rstr2any(rstr(s), e); + }; + this.raw = function(s) { + return rstr(s, utf8); + }; + this.hex_hmac = function(k, d) { + return rstr2hex(rstr_hmac(k, d)); + }; + this.b64_hmac = function(k, d) { + return rstr2b64(rstr_hmac(k, d), b64pad); + }; + this.any_hmac = function(k, d, e) { + return rstr2any(rstr_hmac(k, d), e); + }; + /** + * Perform a simple self-test to see if the VM is working + * @return {String} Hexadecimal hash sample + * @public + */ + this.vm_test = function() { + return hex('abc').toLowerCase() === '900150983cd24fb0d6963f7d28e17f72'; + }; + /** + * @description Enable/disable uppercase hexadecimal returned string + * @param {boolean} + * @return {Object} this + * @public + */ + this.setUpperCase = function(a) { + if (typeof a === 'boolean') { + hexcase = a; + } + return this; + }; + /** + * @description Defines a base64 pad string + * @param {string} Pad + * @return {Object} this + * @public + */ + this.setPad = function(a) { + b64pad = a || b64pad; + return this; + }; + /** + * @description Defines a base64 pad string + * @param {boolean} + * @return {Object} this + * @public + */ + this.setUTF8 = function(a) { + if (typeof a === 'boolean') { + utf8 = a; + } + return this; + }; + + /* private methods */ + + /** + * Calculate the SHA-512 of a raw string + */ + + function rstr(s) { + s = (utf8) ? utf8Encode(s) : s; + return binb2rstr(binb(rstr2binb(s), s.length * 8)); + } + /* + * Calculate the HMAC-SHA-512 of a key and some data (raw strings) + */ + + function rstr_hmac(key, data) { + key = (utf8) ? utf8Encode(key) : key; + data = (utf8) ? utf8Encode(data) : data; + + var hash, i = 0, + bkey = rstr2binb(key), + ipad = Array(32), + opad = Array(32); + + if (bkey.length > 32) { + bkey = binb(bkey, key.length * 8); + } + + for (; i < 32; i += 1) { + ipad[i] = bkey[i] ^ 0x36363636; + opad[i] = bkey[i] ^ 0x5C5C5C5C; + } + + hash = binb(ipad.concat(rstr2binb(data)), 1024 + data.length * 8); + return binb2rstr(binb(opad.concat(hash), 1024 + 512)); + } + + /** + * Calculate the SHA-512 of an array of big-endian dwords, and a bit length + */ + + function binb(x, len) { + var j, i, l, + W = new Array(80), + hash = new Array(16), + //Initial hash values + H = [ + new int64(0x6a09e667, -205731576), + new int64(-1150833019, -2067093701), + new int64(0x3c6ef372, -23791573), + new int64(-1521486534, 0x5f1d36f1), + new int64(0x510e527f, -1377402159), + new int64(-1694144372, 0x2b3e6c1f), + new int64(0x1f83d9ab, -79577749), + new int64(0x5be0cd19, 0x137e2179) + ], + T1 = new int64(0, 0), + T2 = new int64(0, 0), + a = new int64(0, 0), + b = new int64(0, 0), + c = new int64(0, 0), + d = new int64(0, 0), + e = new int64(0, 0), + f = new int64(0, 0), + g = new int64(0, 0), + h = new int64(0, 0), + //Temporary variables not specified by the document + s0 = new int64(0, 0), + s1 = new int64(0, 0), + Ch = new int64(0, 0), + Maj = new int64(0, 0), + r1 = new int64(0, 0), + r2 = new int64(0, 0), + r3 = new int64(0, 0); + + if (sha512_k === undefined) { + //SHA512 constants + sha512_k = [ + new int64(0x428a2f98, -685199838), new int64(0x71374491, 0x23ef65cd), + new int64(-1245643825, -330482897), new int64(-373957723, -2121671748), + new int64(0x3956c25b, -213338824), new int64(0x59f111f1, -1241133031), + new int64(-1841331548, -1357295717), new int64(-1424204075, -630357736), + new int64(-670586216, -1560083902), new int64(0x12835b01, 0x45706fbe), + new int64(0x243185be, 0x4ee4b28c), new int64(0x550c7dc3, -704662302), + new int64(0x72be5d74, -226784913), new int64(-2132889090, 0x3b1696b1), + new int64(-1680079193, 0x25c71235), new int64(-1046744716, -815192428), + new int64(-459576895, -1628353838), new int64(-272742522, 0x384f25e3), + new int64(0xfc19dc6, -1953704523), new int64(0x240ca1cc, 0x77ac9c65), + new int64(0x2de92c6f, 0x592b0275), new int64(0x4a7484aa, 0x6ea6e483), + new int64(0x5cb0a9dc, -1119749164), new int64(0x76f988da, -2096016459), + new int64(-1740746414, -295247957), new int64(-1473132947, 0x2db43210), + new int64(-1341970488, -1728372417), new int64(-1084653625, -1091629340), + new int64(-958395405, 0x3da88fc2), new int64(-710438585, -1828018395), + new int64(0x6ca6351, -536640913), new int64(0x14292967, 0xa0e6e70), + new int64(0x27b70a85, 0x46d22ffc), new int64(0x2e1b2138, 0x5c26c926), + new int64(0x4d2c6dfc, 0x5ac42aed), new int64(0x53380d13, -1651133473), + new int64(0x650a7354, -1951439906), new int64(0x766a0abb, 0x3c77b2a8), + new int64(-2117940946, 0x47edaee6), new int64(-1838011259, 0x1482353b), + new int64(-1564481375, 0x4cf10364), new int64(-1474664885, -1136513023), + new int64(-1035236496, -789014639), new int64(-949202525, 0x654be30), + new int64(-778901479, -688958952), new int64(-694614492, 0x5565a910), + new int64(-200395387, 0x5771202a), new int64(0x106aa070, 0x32bbd1b8), + new int64(0x19a4c116, -1194143544), new int64(0x1e376c08, 0x5141ab53), + new int64(0x2748774c, -544281703), new int64(0x34b0bcb5, -509917016), + new int64(0x391c0cb3, -976659869), new int64(0x4ed8aa4a, -482243893), + new int64(0x5b9cca4f, 0x7763e373), new int64(0x682e6ff3, -692930397), + new int64(0x748f82ee, 0x5defb2fc), new int64(0x78a5636f, 0x43172f60), + new int64(-2067236844, -1578062990), new int64(-1933114872, 0x1a6439ec), + new int64(-1866530822, 0x23631e28), new int64(-1538233109, -561857047), + new int64(-1090935817, -1295615723), new int64(-965641998, -479046869), + new int64(-903397682, -366583396), new int64(-779700025, 0x21c0c207), + new int64(-354779690, -840897762), new int64(-176337025, -294727304), + new int64(0x6f067aa, 0x72176fba), new int64(0xa637dc5, -1563912026), + new int64(0x113f9804, -1090974290), new int64(0x1b710b35, 0x131c471b), + new int64(0x28db77f5, 0x23047d84), new int64(0x32caab7b, 0x40c72493), + new int64(0x3c9ebe0a, 0x15c9bebc), new int64(0x431d67c4, -1676669620), + new int64(0x4cc5d4be, -885112138), new int64(0x597f299c, -60457430), + new int64(0x5fcb6fab, 0x3ad6faec), new int64(0x6c44198c, 0x4a475817) + ]; + } + + for (i = 0; i < 80; i += 1) { + W[i] = new int64(0, 0); + } + + // append padding to the source string. The format is described in the FIPS. + x[len >> 5] |= 0x80 << (24 - (len & 0x1f)); + x[((len + 128 >> 10) << 5) + 31] = len; + l = x.length; + for (i = 0; i < l; i += 32) { //32 dwords is the block size + int64copy(a, H[0]); + int64copy(b, H[1]); + int64copy(c, H[2]); + int64copy(d, H[3]); + int64copy(e, H[4]); + int64copy(f, H[5]); + int64copy(g, H[6]); + int64copy(h, H[7]); + + for (j = 0; j < 16; j += 1) { + W[j].h = x[i + 2 * j]; + W[j].l = x[i + 2 * j + 1]; + } + + for (j = 16; j < 80; j += 1) { + //sigma1 + int64rrot(r1, W[j - 2], 19); + int64revrrot(r2, W[j - 2], 29); + int64shr(r3, W[j - 2], 6); + s1.l = r1.l ^ r2.l ^ r3.l; + s1.h = r1.h ^ r2.h ^ r3.h; + //sigma0 + int64rrot(r1, W[j - 15], 1); + int64rrot(r2, W[j - 15], 8); + int64shr(r3, W[j - 15], 7); + s0.l = r1.l ^ r2.l ^ r3.l; + s0.h = r1.h ^ r2.h ^ r3.h; + + int64add4(W[j], s1, W[j - 7], s0, W[j - 16]); + } + + for (j = 0; j < 80; j += 1) { + //Ch + Ch.l = (e.l & f.l) ^ (~e.l & g.l); + Ch.h = (e.h & f.h) ^ (~e.h & g.h); + + //Sigma1 + int64rrot(r1, e, 14); + int64rrot(r2, e, 18); + int64revrrot(r3, e, 9); + s1.l = r1.l ^ r2.l ^ r3.l; + s1.h = r1.h ^ r2.h ^ r3.h; + + //Sigma0 + int64rrot(r1, a, 28); + int64revrrot(r2, a, 2); + int64revrrot(r3, a, 7); + s0.l = r1.l ^ r2.l ^ r3.l; + s0.h = r1.h ^ r2.h ^ r3.h; + + //Maj + Maj.l = (a.l & b.l) ^ (a.l & c.l) ^ (b.l & c.l); + Maj.h = (a.h & b.h) ^ (a.h & c.h) ^ (b.h & c.h); + + int64add5(T1, h, s1, Ch, sha512_k[j], W[j]); + int64add(T2, s0, Maj); + + int64copy(h, g); + int64copy(g, f); + int64copy(f, e); + int64add(e, d, T1); + int64copy(d, c); + int64copy(c, b); + int64copy(b, a); + int64add(a, T1, T2); + } + int64add(H[0], H[0], a); + int64add(H[1], H[1], b); + int64add(H[2], H[2], c); + int64add(H[3], H[3], d); + int64add(H[4], H[4], e); + int64add(H[5], H[5], f); + int64add(H[6], H[6], g); + int64add(H[7], H[7], h); + } + + //represent the hash as an array of 32-bit dwords + for (i = 0; i < 8; i += 1) { + hash[2 * i] = H[i].h; + hash[2 * i + 1] = H[i].l; + } + return hash; + } + + //A constructor for 64-bit numbers + + function int64(h, l) { + this.h = h; + this.l = l; + //this.toString = int64toString; + } + + //Copies src into dst, assuming both are 64-bit numbers + + function int64copy(dst, src) { + dst.h = src.h; + dst.l = src.l; + } + + //Right-rotates a 64-bit number by shift + //Won't handle cases of shift>=32 + //The function revrrot() is for that + + function int64rrot(dst, x, shift) { + dst.l = (x.l >>> shift) | (x.h << (32 - shift)); + dst.h = (x.h >>> shift) | (x.l << (32 - shift)); + } + + //Reverses the dwords of the source and then rotates right by shift. + //This is equivalent to rotation by 32+shift + + function int64revrrot(dst, x, shift) { + dst.l = (x.h >>> shift) | (x.l << (32 - shift)); + dst.h = (x.l >>> shift) | (x.h << (32 - shift)); + } + + //Bitwise-shifts right a 64-bit number by shift + //Won't handle shift>=32, but it's never needed in SHA512 + + function int64shr(dst, x, shift) { + dst.l = (x.l >>> shift) | (x.h << (32 - shift)); + dst.h = (x.h >>> shift); + } + + //Adds two 64-bit numbers + //Like the original implementation, does not rely on 32-bit operations + + function int64add(dst, x, y) { + var w0 = (x.l & 0xffff) + (y.l & 0xffff); + var w1 = (x.l >>> 16) + (y.l >>> 16) + (w0 >>> 16); + var w2 = (x.h & 0xffff) + (y.h & 0xffff) + (w1 >>> 16); + var w3 = (x.h >>> 16) + (y.h >>> 16) + (w2 >>> 16); + dst.l = (w0 & 0xffff) | (w1 << 16); + dst.h = (w2 & 0xffff) | (w3 << 16); + } + + //Same, except with 4 addends. Works faster than adding them one by one. + + function int64add4(dst, a, b, c, d) { + var w0 = (a.l & 0xffff) + (b.l & 0xffff) + (c.l & 0xffff) + (d.l & 0xffff); + var w1 = (a.l >>> 16) + (b.l >>> 16) + (c.l >>> 16) + (d.l >>> 16) + (w0 >>> 16); + var w2 = (a.h & 0xffff) + (b.h & 0xffff) + (c.h & 0xffff) + (d.h & 0xffff) + (w1 >>> 16); + var w3 = (a.h >>> 16) + (b.h >>> 16) + (c.h >>> 16) + (d.h >>> 16) + (w2 >>> 16); + dst.l = (w0 & 0xffff) | (w1 << 16); + dst.h = (w2 & 0xffff) | (w3 << 16); + } + + //Same, except with 5 addends + + function int64add5(dst, a, b, c, d, e) { + var w0 = (a.l & 0xffff) + (b.l & 0xffff) + (c.l & 0xffff) + (d.l & 0xffff) + (e.l & 0xffff), + w1 = (a.l >>> 16) + (b.l >>> 16) + (c.l >>> 16) + (d.l >>> 16) + (e.l >>> 16) + (w0 >>> 16), + w2 = (a.h & 0xffff) + (b.h & 0xffff) + (c.h & 0xffff) + (d.h & 0xffff) + (e.h & 0xffff) + (w1 >>> 16), + w3 = (a.h >>> 16) + (b.h >>> 16) + (c.h >>> 16) + (d.h >>> 16) + (e.h >>> 16) + (w2 >>> 16); + dst.l = (w0 & 0xffff) | (w1 << 16); + dst.h = (w2 & 0xffff) | (w3 << 16); + } + }, + /** + * @class Hashes.RMD160 + * @constructor + * @param {Object} [config] + * + * A JavaScript implementation of the RIPEMD-160 Algorithm + * Version 2.2 Copyright Jeremy Lin, Paul Johnston 2000 - 2009. + * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet + * See http://pajhome.org.uk/crypt/md5 for details. + * Also http://www.ocf.berkeley.edu/~jjlin/jsotp/ + */ + RMD160: function(options) { + /** + * Private properties configuration variables. You may need to tweak these to be compatible with + * the server-side, but the defaults work in most cases. + * @see this.setUpperCase() method + * @see this.setPad() method + */ + var hexcase = (options && typeof options.uppercase === 'boolean') ? options.uppercase : false, + /* hexadecimal output case format. false - lowercase; true - uppercase */ + b64pad = (options && typeof options.pad === 'string') ? options.pa : '=', + /* base-64 pad character. Default '=' for strict RFC compliance */ + utf8 = (options && typeof options.utf8 === 'boolean') ? options.utf8 : true, + /* enable/disable utf8 encoding */ + rmd160_r1 = [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, + 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, + 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, + 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13 + ], + rmd160_r2 = [ + 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, + 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, + 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, + 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, + 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11 + ], + rmd160_s1 = [ + 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, + 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, + 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, + 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, + 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 + ], + rmd160_s2 = [ + 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, + 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, + 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, + 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, + 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 + ]; + + /* privileged (public) methods */ + this.hex = function(s) { + return rstr2hex(rstr(s, utf8)); + }; + this.b64 = function(s) { + return rstr2b64(rstr(s, utf8), b64pad); + }; + this.any = function(s, e) { + return rstr2any(rstr(s, utf8), e); + }; + this.raw = function(s) { + return rstr(s, utf8); + }; + this.hex_hmac = function(k, d) { + return rstr2hex(rstr_hmac(k, d)); + }; + this.b64_hmac = function(k, d) { + return rstr2b64(rstr_hmac(k, d), b64pad); + }; + this.any_hmac = function(k, d, e) { + return rstr2any(rstr_hmac(k, d), e); + }; + /** + * Perform a simple self-test to see if the VM is working + * @return {String} Hexadecimal hash sample + * @public + */ + this.vm_test = function() { + return hex('abc').toLowerCase() === '900150983cd24fb0d6963f7d28e17f72'; + }; + /** + * @description Enable/disable uppercase hexadecimal returned string + * @param {boolean} + * @return {Object} this + * @public + */ + this.setUpperCase = function(a) { + if (typeof a === 'boolean') { + hexcase = a; + } + return this; + }; + /** + * @description Defines a base64 pad string + * @param {string} Pad + * @return {Object} this + * @public + */ + this.setPad = function(a) { + if (typeof a !== 'undefined') { + b64pad = a; + } + return this; + }; + /** + * @description Defines a base64 pad string + * @param {boolean} + * @return {Object} this + * @public + */ + this.setUTF8 = function(a) { + if (typeof a === 'boolean') { + utf8 = a; + } + return this; + }; + + /* private methods */ + + /** + * Calculate the rmd160 of a raw string + */ + + function rstr(s) { + s = (utf8) ? utf8Encode(s) : s; + return binl2rstr(binl(rstr2binl(s), s.length * 8)); + } + + /** + * Calculate the HMAC-rmd160 of a key and some data (raw strings) + */ + + function rstr_hmac(key, data) { + key = (utf8) ? utf8Encode(key) : key; + data = (utf8) ? utf8Encode(data) : data; + var i, hash, + bkey = rstr2binl(key), + ipad = Array(16), + opad = Array(16); + + if (bkey.length > 16) { + bkey = binl(bkey, key.length * 8); + } + + for (i = 0; i < 16; i += 1) { + ipad[i] = bkey[i] ^ 0x36363636; + opad[i] = bkey[i] ^ 0x5C5C5C5C; + } + hash = binl(ipad.concat(rstr2binl(data)), 512 + data.length * 8); + return binl2rstr(binl(opad.concat(hash), 512 + 160)); + } + + /** + * Convert an array of little-endian words to a string + */ + + function binl2rstr(input) { + var i, output = '', + l = input.length * 32; + for (i = 0; i < l; i += 8) { + output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xFF); + } + return output; + } + + /** + * Calculate the RIPE-MD160 of an array of little-endian words, and a bit length. + */ + + function binl(x, len) { + var T, j, i, l, + h0 = 0x67452301, + h1 = 0xefcdab89, + h2 = 0x98badcfe, + h3 = 0x10325476, + h4 = 0xc3d2e1f0, + A1, B1, C1, D1, E1, + A2, B2, C2, D2, E2; + + /* append padding */ + x[len >> 5] |= 0x80 << (len % 32); + x[(((len + 64) >>> 9) << 4) + 14] = len; + l = x.length; + + for (i = 0; i < l; i += 16) { + A1 = A2 = h0; + B1 = B2 = h1; + C1 = C2 = h2; + D1 = D2 = h3; + E1 = E2 = h4; + for (j = 0; j <= 79; j += 1) { + T = safe_add(A1, rmd160_f(j, B1, C1, D1)); + T = safe_add(T, x[i + rmd160_r1[j]]); + T = safe_add(T, rmd160_K1(j)); + T = safe_add(bit_rol(T, rmd160_s1[j]), E1); + A1 = E1; + E1 = D1; + D1 = bit_rol(C1, 10); + C1 = B1; + B1 = T; + T = safe_add(A2, rmd160_f(79 - j, B2, C2, D2)); + T = safe_add(T, x[i + rmd160_r2[j]]); + T = safe_add(T, rmd160_K2(j)); + T = safe_add(bit_rol(T, rmd160_s2[j]), E2); + A2 = E2; + E2 = D2; + D2 = bit_rol(C2, 10); + C2 = B2; + B2 = T; + } + + T = safe_add(h1, safe_add(C1, D2)); + h1 = safe_add(h2, safe_add(D1, E2)); + h2 = safe_add(h3, safe_add(E1, A2)); + h3 = safe_add(h4, safe_add(A1, B2)); + h4 = safe_add(h0, safe_add(B1, C2)); + h0 = T; + } + return [h0, h1, h2, h3, h4]; + } + + // specific algorithm methods + + function rmd160_f(j, x, y, z) { + return (0 <= j && j <= 15) ? (x ^ y ^ z) : + (16 <= j && j <= 31) ? (x & y) | (~x & z) : + (32 <= j && j <= 47) ? (x | ~y) ^ z : + (48 <= j && j <= 63) ? (x & z) | (y & ~z) : + (64 <= j && j <= 79) ? x ^ (y | ~z) : + 'rmd160_f: j out of range'; + } + + function rmd160_K1(j) { + return (0 <= j && j <= 15) ? 0x00000000 : + (16 <= j && j <= 31) ? 0x5a827999 : + (32 <= j && j <= 47) ? 0x6ed9eba1 : + (48 <= j && j <= 63) ? 0x8f1bbcdc : + (64 <= j && j <= 79) ? 0xa953fd4e : + 'rmd160_K1: j out of range'; + } + + function rmd160_K2(j) { + return (0 <= j && j <= 15) ? 0x50a28be6 : + (16 <= j && j <= 31) ? 0x5c4dd124 : + (32 <= j && j <= 47) ? 0x6d703ef3 : + (48 <= j && j <= 63) ? 0x7a6d76e9 : + (64 <= j && j <= 79) ? 0x00000000 : + 'rmd160_K2: j out of range'; + } + } + }; + + // exposes Hashes + (function(window, undefined) { + var freeExports = false; + if (typeof exports === 'object') { + freeExports = exports; + if (exports && typeof global === 'object' && global && global === global.global) { + window = global; + } + } + + if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) { + // define as an anonymous module, so, through path mapping, it can be aliased + define(function() { + return Hashes; + }); + } else if (freeExports) { + // in Node.js or RingoJS v0.8.0+ + if (typeof module === 'object' && module && module.exports === freeExports) { + module.exports = Hashes; + } + // in Narwhal or RingoJS v0.7.0- + else { + freeExports.Hashes = Hashes; + } + } else { + // in a browser or Rhino + window.Hashes = Hashes; + } + }(this)); +}()); // IIFE From e063f37303367a3001812ac7d1ab3f6345377f4b Mon Sep 17 00:00:00 2001 From: Dennis Menge Date: Tue, 14 Jul 2020 22:26:21 +0200 Subject: [PATCH 07/93] added hex encoded hint in script metadata --- Boop/Boop/scripts/MD5.js | 2 +- Boop/Boop/scripts/SHA1.js | 2 +- Boop/Boop/scripts/SHA256.js | 2 +- Boop/Boop/scripts/SHA512.js | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Boop/Boop/scripts/MD5.js b/Boop/Boop/scripts/MD5.js index 89a63704..b841361c 100644 --- a/Boop/Boop/scripts/MD5.js +++ b/Boop/Boop/scripts/MD5.js @@ -2,7 +2,7 @@ { "api":1, "name":"MD5 Checksum", - "description":"Computes the checksum of your text", + "description":"Computes the checksum of your text (Hex encoded)", "author":"Ivan", "icon":"fingerprint", "tags":"strip,slashes,remove" diff --git a/Boop/Boop/scripts/SHA1.js b/Boop/Boop/scripts/SHA1.js index 2ab5ce46..887144b8 100644 --- a/Boop/Boop/scripts/SHA1.js +++ b/Boop/Boop/scripts/SHA1.js @@ -2,7 +2,7 @@ { "api":1, "name":"SHA1 Hash", - "description":"Computes the SHA1 hash of your text", + "description":"Computes the SHA1 hash of your text (Hex encoded)", "icon":"fingerprint", "tags":"strip,slashes,remove" } diff --git a/Boop/Boop/scripts/SHA256.js b/Boop/Boop/scripts/SHA256.js index 3b23bb6a..11437ef5 100644 --- a/Boop/Boop/scripts/SHA256.js +++ b/Boop/Boop/scripts/SHA256.js @@ -2,7 +2,7 @@ { "api":1, "name":"SHA256 Hash", - "description":"Computes the SHA256 hash of your text", + "description":"Computes the SHA256 hash of your text (Hex encoded)", "icon":"fingerprint", "tags":"strip,slashes,remove" } diff --git a/Boop/Boop/scripts/SHA512.js b/Boop/Boop/scripts/SHA512.js index 16280834..b749a271 100644 --- a/Boop/Boop/scripts/SHA512.js +++ b/Boop/Boop/scripts/SHA512.js @@ -2,7 +2,7 @@ { "api":1, "name":"SHA512 Hash", - "description":"Computes the SHA512 hash of your text", + "description":"Computes the SHA512 hash of your text (Hex encoded)", "icon":"fingerprint", "tags":"strip,slashes,remove" } From a84f6a8192a685e6b03338884d57d028d8a81fda Mon Sep 17 00:00:00 2001 From: Armand SALLE Date: Sat, 18 Jul 2020 22:44:35 +0200 Subject: [PATCH 08/93] Create generateHashatg.js MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hello! A simple script to generate hashtags #cool 😎 --- Scripts/generateHashatg.js | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 Scripts/generateHashatg.js diff --git a/Scripts/generateHashatg.js b/Scripts/generateHashatg.js new file mode 100644 index 00000000..d55db7b0 --- /dev/null +++ b/Scripts/generateHashatg.js @@ -0,0 +1,35 @@ +/** +{ + "api": 1, + "name": "Generate hashtag", + "description": "Generate hashtag from a word or sentence", + "author": "Armand Salle", + "icon": "metamorphose", + "tags": "hashtag,word" +} +**/ + +function capitalize(str) { + return str.charAt(0).toUpperCase() + str.slice(1); +} + +function createHashtag(str) { + if (str === "") { + throw new Error("Invalid text :("); + } else { + const result = str.replace(/\n+/gm, " "); + const text = result.replace(/[^A-Za-zÀ-ÖØ-öø-ÿ0-9\s]+/gm, " "); + + return "#" + text.toLowerCase().split(" ").map(capitalize).join(""); + } +} + +function main(input) { + try { + const generatedHashatag = createHashtag(input.text); + input.text = generatedHashatag; + input.postInfo("Nice!"); + } catch (e) { + input.postError(e.message); + } +} From 55b1902308d758b171d93cab5c78b3a49cb65c35 Mon Sep 17 00:00:00 2001 From: Ivan Mathy Date: Mon, 20 Jul 2020 08:31:23 -0500 Subject: [PATCH 09/93] Fixes --- Boop/Boop.xcodeproj/project.pbxproj | 16 ++++++++-------- Boop/Boop/scripts/KebabCase.js | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Boop/Boop.xcodeproj/project.pbxproj b/Boop/Boop.xcodeproj/project.pbxproj index 0ba59750..d4e5362f 100644 --- a/Boop/Boop.xcodeproj/project.pbxproj +++ b/Boop/Boop.xcodeproj/project.pbxproj @@ -745,7 +745,7 @@ CODE_SIGN_IDENTITY = "-"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 4; DEVELOPMENT_TEAM = RLZ8XBTX7G; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -758,7 +758,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.14; - MARKETING_VERSION = 1.1.0; + MARKETING_VERSION = 1.2.0; OTHER_CODE_SIGN_FLAGS = "--deep"; PRODUCT_BUNDLE_IDENTIFIER = com.OKatBest.Boop; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -775,7 +775,7 @@ CODE_SIGN_IDENTITY = "-"; CODE_SIGN_STYLE = Manual; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 4; DEVELOPMENT_TEAM = ""; ENABLE_HARDENED_RUNTIME = YES; FRAMEWORK_SEARCH_PATHS = ( @@ -789,7 +789,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.14; - MARKETING_VERSION = 1.1.0; + MARKETING_VERSION = 1.2.0; OTHER_CODE_SIGN_FLAGS = "--deep"; PRODUCT_BUNDLE_IDENTIFIER = com.okatbest.boop; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -806,7 +806,7 @@ CODE_SIGN_IDENTITY = "-"; CODE_SIGN_STYLE = Manual; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 3; + CURRENT_PROJECT_VERSION = 5; DEVELOPMENT_TEAM = ""; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -819,7 +819,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.14; - MARKETING_VERSION = 1.1.0; + MARKETING_VERSION = 1.2.0; OTHER_CODE_SIGN_FLAGS = "--deep"; "OTHER_SWIFT_FLAGS[arch=*]" = "-D APPSTORE"; PRODUCT_BUNDLE_IDENTIFIER = com.OKatBest.Boop; @@ -837,7 +837,7 @@ CODE_SIGN_IDENTITY = "-"; CODE_SIGN_STYLE = Manual; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 3; + CURRENT_PROJECT_VERSION = 5; DEVELOPMENT_TEAM = ""; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -850,7 +850,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.14; - MARKETING_VERSION = 1.1.0; + MARKETING_VERSION = 1.2.0; OTHER_CODE_SIGN_FLAGS = "--deep"; "OTHER_SWIFT_FLAGS[arch=*]" = "-D APPSTORE"; PRODUCT_BUNDLE_IDENTIFIER = com.okatbest.boop; diff --git a/Boop/Boop/scripts/KebabCase.js b/Boop/Boop/scripts/KebabCase.js index 52081e92..704a6c72 100644 --- a/Boop/Boop/scripts/KebabCase.js +++ b/Boop/Boop/scripts/KebabCase.js @@ -4,7 +4,7 @@ "name":"Kebab Case", "description":"converts-your-text-to-kebab-case.", "author":"Ivan", - "icon":"metamorphose", + "icon":"kebab", "tags":"kebab,case,function,lodash" } **/ From 963ed3db2ecfd5ea862a68d3a02c4b69038e90c9 Mon Sep 17 00:00:00 2001 From: Paul Seelman Date: Tue, 21 Jul 2020 14:49:44 -0600 Subject: [PATCH 10/93] Add Support for Spongebob Sarcasm Text Script --- Scripts/SpongeText.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 Scripts/SpongeText.js diff --git a/Scripts/SpongeText.js b/Scripts/SpongeText.js new file mode 100644 index 00000000..bd91b959 --- /dev/null +++ b/Scripts/SpongeText.js @@ -0,0 +1,27 @@ +/** +{ + "api": 1, + "name": "Sponge Text", + "description": "Randomly capitalizes letters to make it sarcastic", + "author": "Paul Seelman", + "icon": "dice", + "tags": "sponge,spongetext,spongebob,spongebob text,sarcasm,sarcastic,random,caps,capitalized" +} +**/ +function spongeText(string) { + const chars = string.split(""); + for (let i = chars.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * Math.floor(2)); + if (j == 0) { + chars[i] = chars[i].toLowerCase(); + } else { + chars[i] = chars[i].toUpperCase(); + } + } + + return chars.join(""); +} + +function main(input) { + input.text = spongeText(input.text); +} From 3a4fd6af803c54a56e9288ebed15b26a70d49f26 Mon Sep 17 00:00:00 2001 From: annie tran Date: Tue, 21 Jul 2020 18:34:37 -0500 Subject: [PATCH 11/93] Fix typo --- Boop/Boop/scripts/SumAll.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Boop/Boop/scripts/SumAll.js b/Boop/Boop/scripts/SumAll.js index da0a3423..ae48c088 100644 --- a/Boop/Boop/scripts/SumAll.js +++ b/Boop/Boop/scripts/SumAll.js @@ -2,7 +2,7 @@ { "api":1, "name":"Sum All", - "description":"Sum a list of numbers (separated by be either a new line, comma, or semicolon).", + "description":"Sum a list of numbers (separated by either a new line, comma, or semicolon).", "author":"Annie Tran", "icon":"abacus", "tags":"sum,calculator,addition,add" From 7f23170f97df07dab579b9925cc0d243ac91fe32 Mon Sep 17 00:00:00 2001 From: Josef Dolezal Date: Thu, 23 Jul 2020 22:13:45 +0200 Subject: [PATCH 12/93] Select script using mouse double-click --- .../Controllers/PopoverViewController.swift | 31 ++++++++++++------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/Boop/Boop/Controllers/PopoverViewController.swift b/Boop/Boop/Controllers/PopoverViewController.swift index da7748a0..3dd02a71 100644 --- a/Boop/Boop/Controllers/PopoverViewController.swift +++ b/Boop/Boop/Controllers/PopoverViewController.swift @@ -28,6 +28,9 @@ class PopoverViewController: NSViewController { override func viewDidLoad() { super.viewDidLoad() + + // Double-click script selection + tableView.doubleAction = #selector(runSelectedScript) setupKeyHandlers() } @@ -55,18 +58,12 @@ class PopoverViewController: NSViewController { } if theEvent.keyCode == 36 && self.enabled { // ENTER - - guard let script = self.tableViewController.selectedScript else { - return theEvent // Return event to beep + + guard self.tableViewController.selectedScript != nil else { + return theEvent } - - - // Let's dismiss the popover - self.hide() - - // Run the script afterwards in case we need to show a status - self.scriptManager.runScript(script, into: self.editorView) - + + self.runScriptAgain() didSomething = true } @@ -142,6 +139,18 @@ class PopoverViewController: NSViewController { func runScriptAgain() { self.scriptManager.runScriptAgain(editor: self.editorView) } + + @objc private func runSelectedScript() { + guard let script = tableViewController.selectedScript else { + return + } + + // Let's dismiss the popover + hide() + + // Run the script afterwards in case we need to show a status + scriptManager.runScript(script, into: editorView) + } } From 00c2f053d1773e3626cf3183de465a3e7b1b6e3b Mon Sep 17 00:00:00 2001 From: Josef Dolezal Date: Thu, 23 Jul 2020 22:22:24 +0200 Subject: [PATCH 13/93] Dismiss popover on background click --- Boop/Boop/Controllers/PopoverViewController.swift | 5 +++++ Boop/Boop/Views/OverlayView.swift | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Boop/Boop/Controllers/PopoverViewController.swift b/Boop/Boop/Controllers/PopoverViewController.swift index 3dd02a71..94d2ae43 100644 --- a/Boop/Boop/Controllers/PopoverViewController.swift +++ b/Boop/Boop/Controllers/PopoverViewController.swift @@ -31,6 +31,11 @@ class PopoverViewController: NSViewController { // Double-click script selection tableView.doubleAction = #selector(runSelectedScript) + + // Dismiss popover on background view click + overlayView.onMouseDown = { [weak self] in + self?.hide() + } setupKeyHandlers() } diff --git a/Boop/Boop/Views/OverlayView.swift b/Boop/Boop/Views/OverlayView.swift index 5beb372b..aa99543a 100644 --- a/Boop/Boop/Views/OverlayView.swift +++ b/Boop/Boop/Views/OverlayView.swift @@ -10,6 +10,8 @@ import Cocoa class OverlayView: NSView { + var onMouseDown: (() -> Void)? + required init?(coder decoder: NSCoder) { super.init(coder: decoder) self.wantsLayer = true @@ -32,7 +34,7 @@ class OverlayView: NSView { } override func mouseDown(with event: NSEvent) { - return + onMouseDown?() } } From 7504d1d4bafefa477f54dfe8eab264782a843e74 Mon Sep 17 00:00:00 2001 From: Josef Dolezal Date: Fri, 24 Jul 2020 09:38:31 +0200 Subject: [PATCH 14/93] Fix running action using double click --- Boop/Boop/Controllers/PopoverViewController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Boop/Boop/Controllers/PopoverViewController.swift b/Boop/Boop/Controllers/PopoverViewController.swift index 94d2ae43..6e1f67e2 100644 --- a/Boop/Boop/Controllers/PopoverViewController.swift +++ b/Boop/Boop/Controllers/PopoverViewController.swift @@ -68,7 +68,7 @@ class PopoverViewController: NSViewController { return theEvent } - self.runScriptAgain() + self.runSelectedScript() didSomething = true } From d41f67988cb4431531c54282e4977491c3749e02 Mon Sep 17 00:00:00 2001 From: codepo8 Date: Thu, 30 Jul 2020 09:05:13 +0200 Subject: [PATCH 15/93] Added List to HTML and Derpify.js --- Scripts/derpify.js | 22 ++++++++++++++++++++++ Scripts/listToHTMLList.js | 30 ++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 Scripts/derpify.js create mode 100644 Scripts/listToHTMLList.js diff --git a/Scripts/derpify.js b/Scripts/derpify.js new file mode 100644 index 00000000..9f986bdc --- /dev/null +++ b/Scripts/derpify.js @@ -0,0 +1,22 @@ +/** +{ + "api": 1, + "name": "Derpify", + "description": "Turns 'but I want loops in CSS' into 'BUt i WaNt LoOPS iN CSS'", + "author": "Christian Heilmann", + "icon": "table", + "tags": "derp,Meme,text" +} +**/ + +function derpify(str, rand = 0.3) { + return str.toLowerCase().split('').map( + c => (Math.random() < rand) ? c : c.toUpperCase() + ).join(''); +}; + +function main(input) { + input.text = derpify(input.text); +} + + diff --git a/Scripts/listToHTMLList.js b/Scripts/listToHTMLList.js new file mode 100644 index 00000000..bf5a6746 --- /dev/null +++ b/Scripts/listToHTMLList.js @@ -0,0 +1,30 @@ +/** +{ + "api": 1, + "name": "List to HTML list", + "description": "Turns comma separated list to HTML Lists", + "author": "Christian Heilmann", + "icon": "table", + "tags": "HTML,Lists" +} +**/ + +const listToHTML = (str) => { + if (str.indexOf('

^dto{oh0$vOMLL}m)noVcnbUL%4zeajY4 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 a(!(e&0j5)MA_BV0#KeS4Rn^tsjSB!3pz)Oe diff --git a/Boop/Boop/Assets.xcassets/Icons/icons8-trimstart.imageset/TrimStart.pdf b/Boop/Boop/Assets.xcassets/Icons/icons8-trimstart.imageset/TrimStart.pdf deleted file mode 100644 index 7a55ca2c9045581bcd867e9e04822c5917329560..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 166119 zcmbTc19Tp6Qn9uM1idaragqog)5t6w7;P&9G}*WGX~j92Pgda9)2c+TFmI) zuwh}pC&RI=5fESywE77)R4DvSTo3P&o)j1cjn6}?ZHh74E!Rp^1S^3Ljc{10r95G7 zE`6p4v>!)PJ}R^&7ChTHYjC0Q@%$IaiF|l%@j<}BVMD-rZ9;=*bm=e+D~j@FexID8 z=g-N4QR*2P>Im7e0UpHW4WaeMtx60C5+sQVTxLLSfpk}=Ztz9oqm130yKA7q9-ae8 zV;iG?8UD5R$KO9r{@K#AGW|LEXP4o>LZRetXN*THr*Hb#r-QML6CUH=VNo!4v~_kc zGn9c&z`L<}31FGygTLWXOO=PxogWl2%EH9*^yxul(m`^z{FA zw|^y){*OmrnUwjmotFPkHf_FAiAO7B>|$HBc@Z>5+NtHq+mS)VEfSnwM5gue_Jq0OZ~RKzg0j0R5Qq)Q~REerX{fj`cqRp}_&d zr~&run3#ZwJ_!NMzjbn_rIm^e)<0a*_!+gYQFY6aI4*wr#u2az5`h9h3NNs5`H-L< z03|Bc51=!Af{flLkuwC-Goa)_y{RYsmnR$m3Y^4+5zx$mOD&qXy$`LTfl7{k_^))BJcCPYi7?szbP#l@jSoom0q*zjDeEd61%9PRjBi!d+54-uqNFP;ZP7mr$(6O@o zaU#TzFthd`E`POH8Y9Rbz6(3PXe^{)=ssDNNM_Eu0Nz3DaxLOu!?xT2f`q_CHoP7{ z-e;O{^pL|{9cEQ=HI6Y19v??9xKLW*Hak-M1d4|b-(!p%i1Vq?3$}h({Q^RW1#`-U zWb&t>1ESJ{#`0sd1Kz{~_~9o82b>H{BL-y72lA7jXBhyJpMDw8CD6hSVBX(j8bl_5 z#ST;pM70On4(hv~C?90-FG)JUO@DLnfNMD9eE#xSltS1vfkik>4RCisemOQI-~qv~ zSh#q;=V_8sG>X9TJV80`dqO9SHgN60mt3%EJSNb0K<^*$sX%l3(8~Z#ek-+{Sm2_) zW7|S*$eCcMJ!?A>Ehs!N&Aq5QnAZSQLAt#O;C#d2z%wFh;Fvc;01&sfMX4QmBV4CUA`Y&jCdS z3w6b6q?Nob5G?Q+QPlk^dNF#MwJCML%lhY>STI99=(|{UJ}qck3^vTwAkDB#k?nqG zeb753H*Osin@Cpyu)iFy4ZQHXAbqiXakgS`2fImQAv8cN17Pu!@rbO5l;AMHkHFu5 z!1prA`Bv?S<>2WO!^ZQI+t)VaF2W3c@JSsY^-@ec7Sz&aZo?10NP8Z_r$1xUKE)S*&Z2l$8^{_wKuiK zQe&?3*+HK4OkqRel|+zak_4C(Q!b@!yMVNiRc>7_J5OgpVxe!bV)42_QxP>)GUb{* zm8Hw{x&Ib&TH6-p(eh&PyYH0yGyx+WqYDEaLm4B5X^V|*zdGpImFQz(M0OH+2zeEuO;nioV|=o zFGU@>^jr6DEOW2Cx4crqO2Wp8MhqpEBphK(LFt61)TqX()-=aI8eCaimGE%zgz-f2 zAa=QQRd~}r>AwTLyS!}NEnOeIEWOHtuz^%U977g@h=8bo@jx*^AbfKM>H7uvt33dh zc2<{2YaRti;7!mahzo-GyEgKRBN`1AQzgl{dyBH0kDDt9wSlmZV1K(<%<$~6Xhal> zB#NuZi0FXuf~d5xr*Mj}WQrPCbB1yi$mGt?1p5>-uW)%-X#sA zR&xFMszc*J+1ONdtnM#$dkP#(T7Hs}HjYv#Yadm&-@++b`xzOPH#l#cHj!RvB0AUu`?TyUt>) z@vOyGuE#{iqKq-OY{EC^<#Xk0yY$TJuMP(VS_R~HI;kf$VXOwMkgYB@OzNvF)=~&` zW_}xt?S}8l60gUfZK->!K5vXa{J7{WdMJ8z-F5+YUEerqyHiUuP}fJ)pn7Q`t9lmVesTZR)G*D|8`t6E`IqBw94o8{@pdIlshO z%9_a18x=oTw`V_O`@a2K&=axZM2@kb^$COxpZ#Wc=n3~K`#aZ)d$@P`3F&*zL({ZI zxJKUM`eIm9A&a@El;_ro-&_{))FMuMcCzld zkNHXCm38NdUHyCVUR8A0H}9ht?N{2(hc@qn=+7)n;0Vx{OPVgvPn~t{6YtIU8L%=~ z9o}&dws*64!}Gm-Qb<{f>~h|!_l2h=ld{hH^V}u9srpdUnBW#c+Rvot8ri;YQ)N?> zA`K#^qE(_(kb9+JEaQugI|BQVBvACe1fWD)#5#C=6tAMBd&v*V1_dfvrA0T(cqm?!` zGS?Tdb;HyA1I3Jg-hZ*Q^A|7E14Ry=A(b|ySlM*1&l!$kj;Kk=_jm>crjm|7Ws z`9aI?X!u8Vu`{s!Q7nHSP%|*He5oXTJ27K(Q!}TptC=Bb6`hQ&RsLL|_ODT9=0AGJ z#q_V}{0YsUsJi{v(H}#;u@qP27D zj_au7i2LaEA@kyNd4td7lvqyB($bq#nz+xNg;`Vgr50Svw#Zl0kF5Eoe;?0C4Uk&N!gqh97D&jz}PSas>Q`KDC4s9fK)o;(@qmnK9 zhx1BXYrU}%q-~P+&Z>IK0JQejw2jRfx(!_=__C?uLSGvYU^0`@e9+lA0T#$u|1wH~ zK%z3FnI!4H(MVSkC%0s1{tnISm?7>Tct>FE}5O=!FFqubmQVh; zN4xeecCB0$JLlK?8$E>_Pn!ztEm&9718H+U?j~R|uQ%1fS226@Y+WTgMp&CS`1^xv z7+n=RoETkI`nkVIz&x%OAxgZ)f)IzSZ-0D!uq~z%#5~*2M-sjh-i8K$^f~|Z1$pm0 z-C^~N8RDVb%3&2L$= z`g4L*^K=?P&h@;<1$0fcmYVKFkTJ#_CO=GC5iW{L(GU{D3fyA3Tt6cC1;=W!mOOMd zCF`e3-$zE$6;e`GRN&R8>+@_OCPE_!yAGK ztxEkFfdnn1Ujm2{k_blT;KWc;KZyW|J5PZSQ9$N*pKa8&BA>C=y;#E`H-4641$~oI zKNj&v{P1eN2aB6>=)!bwz4VhjOu}D^a+jKre`2VSG>B5pswZB&iR3V={%>PA! zcp(zDfqn=4kKeSqIigG?9FQ$@CWMKrYj8TA<3P@EM9hjYpEVi^9pD!#) zYzHO4I}}L{tG^cfAq!6Zb1Cd2WM%^C8-cbK3h6ONPV)>G$)X&!^Imi1_-^{}0$*df zdf^$d?RtX6;Zdx`AYqfY6OOB$orGupcQV&RK!qng zo}qF6HmRIhxU51yjU#Ahdw{hv#u>x`;ga3b;onsyl1{7i5f+k?7}hg6T1lS{73uGFtg+qgu+n;oMbAhGmLGV&fep@$XWt% zT<{ZE&Hk4oV50`7(Ly8g-*Y2T9Cc~mMSNvU;agwc9U?_t5!k~%-s*Hnm9I^VJgxKx znhDTgDywe2O*X%a~2v3CHD5mzgR%VB7%W~>CEY($I zFF!iJp(w?WBVlz3#k1!YG}^e`I~(2XjUgz+^o|8$hd9#*`)cL(K$ zsL1avMF~?VQqna#MyjFgG~jEc5J8f}UVw1>W@@LB9uo#~k-SW@xrno9(Qergayr$` z5v9GSZji##^BH3{w~xE<+k$oIu%L_2CNdg95s}IyD=ZzsN%}#_Cx9MSE{FLm;AIlLk~%a%xZEe*!~c*g{(M^|Dg8jwEY zkRVvC?b;1Wp{O6lXj-ye)>iMXcXVExY|2Dk)d=_mcztjz{@-x%KMi6AIu_=CnD?(X z@BhRuy#FH3FYf$;-2dPvzo@#JB0r^~$XAnD$lTG+O5gqe0Gofemj45re;DU)c>ND; z3YnXj7=Jaq|8%%D|H3wB8*_R(I(l|N8tX6acDDWkbRM3s3vHEc%>P;yp#Qrc{k3B7 z52*g3y?=x1pM!scDm^0|)Bnnu|BcxHG_KjdaPI%Z5`=c_FN;1pIH9YTaPHy|yb@DG zGIBuN_+*ZE0AUPF{tg7o=k4yA!bBvGY5sZ-#`@Wzk51DZF<*&VV1%gbEIo({wQ1-C zQ)f5gBkPw=<%vlWimV-dO@zbjAwKJh(0f&pWFpLqO|6!lA~W1wylm1{Z`_db@0O9S z42+E8Dd~hWNpxrA_8-4^F2@ z%kP-TMNGaVE6PM6^S>>8Zhl7|!S=&N$a3?3wiyonZwlm382;1(10CzX>*F8c^q<`Q zq1pdEmjAz0#$QnWhhqPW$(iZ#sQ=J10}CrV9z6pq>;D#zG-KpJG3u)z+=X>w{_lFWfMPnIa(<|Ao+|JvsfvbeegR6+mmn)nux0BRY+Q}fuV^g3l|SpMLt9FM7kpHl7C~7v0pE=zi%PlQ;C_wHf5O9&s=KRwnrT-iWFN|YhXQf@1CQYV)!6DZ>^(=-=5 z@t-Z71tS(w7gtwS*LIJ-H8?OHtw>^}JR`@X&?Mue@T35v$dTu%$*jz*(yG*|Sg-by zey+YnJZK)xNgSvgp-OM`Ym9FUF&?@#%rY3Lzg0V^WLczM#6%I41Iba7sw94ZOa4I$ zFG7UyECf9xxK6r>;9C#TgyD(fN$d%>mU_|iV4Pz@T3b^)wjzCQc@F=8`2g0GDCp3V ziJm!-xqyWo4L_9bn20zWwol}E%Z8k(GU+@CJV`kz3Zt@9YNu>cMkTLa_EXrnCcG@X zGrVL}JV`7`D9I{GAxR`jCuxl$6e%`C+>pUfigax_WuDD~r7@Esm#a*zJoYp>{YtoeGO@I57JN>Dy$c*)fBGWOF%^>ld6C zv=;;yYDyo=yASHzq1@Zu2DwOez-befdOZg*_adG!pFE#LpG==x-)ue@yOeqmsgRDr z&q445#sWZpasMLq7aB&kfN%w``r+S8q#sr*`lK}+N)mn;x)>2DEGoQ{KbDU%!|Z{N z&F?y~J;}yFXg(N{wq{y9>BVc=S9w>TJ)X_E=Iqjk6~x}=XmA)gjy&0z?P+|u=6-j? zK0%rN=<^Z(Y;y;7*sa4yJFT(Zg6H~cEa)xB14@?GO6SRXCO|kjf`-aMFH_rkp<4UUjc^ z@Crkh*(e=rVk8}CqBT7|-IA%<@^X%8&T0C7o+}T%8ok0@{I1-j$Rxs~`w)A=G`-vW zqlmq@D4$t6Vo{^;cl{zsmA1y9#-c{GhL1+x*Xo2qgG0k;14g4qLvSOGW#__6Wl$r; z#mFkq#q;V|!;`tjzr6EX`u|+~s^%**l-7llsA}A2Oz@(1xwnnAmRf`pqWrz!!71_oZ=WVth?88{VSl!s_j)kMM2tG4!&mQ$srK9qBRDJjusZ#}{AC*Y@f5 zrPrk9anTLapeY_))g15~tQ?mdQl4Sg@|xl+8C|d~xvlS8BwO%XH9qA&Q14C8>d)Vv zh@X_7Hm*I7YW8Vwb@yz~uTFd?dAGXzeEUBod!GEB0X2cBfZl+2fk%O=zjZ)7E!l70 zIT$ zhagVS8!`vJlh5&?T)kY*bn0}#boF#eo^OaWq$W}m^|@WD@A5!xZ|!BRss8c({#=Bt zEw8mZ$F|ek$?V*FiEh@QX^Sb-)NxiF5272%j?_rnCgaqk7py9D4sI9uI@3BM7X=q- z2m71OQ%HTk`pbEF{p%D*HZ)I$N7LzfRK4xwD8W1d6QL7fC1JE^zi6V+y$DwfUt9tK zs)$V(Q^b8V7it>j3I;pEGkJJueu0YcMT|o&O0c;oZRz*km^c zZ5Q26?>JNi&3U`szQA=*A`~(zC{0I4Prp=n8g4!PAkm@O_)6+{YFlbvYBT*$HJkI< z<%>F#x*>xCLq~%Q!>hp$bXJ;Z)MhFf(n*F%&Py#V8!gH8&Xz~iBw9$C>Xw$*{EY!b zR709WU90Y=?cE_al@2-|;SQS)Q4AIcCJ2u_F(#HmDBGPSaH($`Yg(rjsV z96MS93IZYm`~u1Xk^;KDRX>IxY!P@!=)(38M*7RbPQ#pb*M*|`brD#JPl+*z(ur3| z+K4t)pG$Nkv!%Mx-pKFX^)H2W6Z?q0Wj;~E zlh!4WkiI7}5t`f2h8ISOb0$Q_SH^3_dnE)U&XgjkL!e=(SAh#g}Baxscqqv~* zP`oMiQ|zLeBUw{(sO{@GwUJeo=9ktSo6js6xYX6Ux!1|m3D>FKtnA+Jj_zjfiVomP zCQ1~iP*JaF8EEY)AZW#_DJaeAIF#&bhc!4koOH}K7QISbNXDcLCLSg)rfgDqtG{$c zDw0rXsx(!NH;i{uRZPsdlD@sfMYTp{S|rS@2+fal}!?(by*J zjCuO~6zep4NxQUNK~;50_p$WSyHnu3;pN-!v(v|gwT0KEoQkQ+n)0g(U#-tNeXT%^ zzWiWlXi#Vv=pjrRCN1+)%a+aSjvdDWhrRnj;;0M^SSAi89NUg*x1zf08;`xa!5V2H z#2WDebIAnz1jV_L;+8M-28(|ct4eRBvrhz=R2^DRkWA1_@K4-KJWota^i9-c$U`j< zSg0@lEEs4Qs3I;Tt}Ci7YCKRGJ4^1?98r<45IIX$*;6@MRIEbPtZ8CtglX)ucwZbe zM{F=}w6#_8^eQ8Ta zlvT;5bW6?4@E!UcbCETAgUylfS>#t#F(#`mSNF~HVN1rG&1C2Em~>}`39Ghkb{o3q z-RMMmhBqtj=G!|7P9~igtOc|UIv1T8?=dSHdn$_>!!nDTrJd9D8XP^7x7o~eTi%9X zNC;Q3KnOx`HO$vT9k?D0_xi`WeF-6^u(Y_FJXQ?nOjvAQK5ULH4lSNfAJ^^rH`J%e z*U5)f6V2akSGI23k=-dTR7R?rGzFV=HeWn6Zyx5?9Bn@xG_RUgtee;PoA+#v)~nk# z96k3RY@3N)hdBc{FyQMWSeV!BGaZST1IJRct4E`>MSooeoNUOU$wb+%r8a=d+C z-i05RHnu#sPP>-g=N=O-QP*wTeD6N)UU4sDqNFg=*nfH%y@rm2?uqq??GG2l#m6