]> gitweb.factorcode.org Git - factor.git/commitdiff
crypto.xor: move to basis for websockets
authorDoug Coleman <doug.coleman@gmail.com>
Tue, 28 Mar 2023 05:23:33 +0000 (00:23 -0500)
committerDoug Coleman <doug.coleman@gmail.com>
Tue, 28 Mar 2023 05:23:33 +0000 (00:23 -0500)
basis/crypto/authors.txt [new file with mode: 0644]
basis/crypto/xor-tests.factor [new file with mode: 0644]
basis/crypto/xor.factor [new file with mode: 0644]
extra/crypto/xor/authors.txt [deleted file]
extra/crypto/xor/xor-tests.factor [deleted file]
extra/crypto/xor/xor.factor [deleted file]

diff --git a/basis/crypto/authors.txt b/basis/crypto/authors.txt
new file mode 100644 (file)
index 0000000..7c1b2f2
--- /dev/null
@@ -0,0 +1 @@
+Doug Coleman
diff --git a/basis/crypto/xor-tests.factor b/basis/crypto/xor-tests.factor
new file mode 100644 (file)
index 0000000..c4c7ad8
--- /dev/null
@@ -0,0 +1,25 @@
+USING: continuations crypto.xor kernel strings tools.test ;
+IN: crypto.xor.tests
+
+! No key
+[ ""        dup  xor-crypt           ] [ T{ empty-xor-key } = ] must-fail-with
+[ { }       dup  xor-crypt           ] [ T{ empty-xor-key } = ] must-fail-with
+[ V{ }      dup  xor-crypt           ] [ T{ empty-xor-key } = ] must-fail-with
+[ "" "asdf" dupd xor-crypt xor-crypt ] [ T{ empty-xor-key } = ] must-fail-with
+
+! a xor a = 0
+{ "\0\0\0\0\0\0\0" } [ "abcdefg" dup xor-crypt ] unit-test
+
+{ { 15 15 15 15 } } [ { 10 10 10 10 } { 5 5 5 5 } xor-crypt ] unit-test
+
+{ "asdf" } [ "asdf" "key" [ xor-crypt ] [ xor-crypt ] bi >string ] unit-test
+{ "" } [ "" "key" xor-crypt >string ] unit-test
+{ "a longer message...!" } [
+    "a longer message...!"
+    "." [ xor-crypt ] [ xor-crypt ] bi >string
+] unit-test
+{ "a longer message...!" } [
+    "a longer message...!"
+    "a very long key, longer than the message even."
+    [ xor-crypt ] [ xor-crypt ] bi >string
+] unit-test
diff --git a/basis/crypto/xor.factor b/basis/crypto/xor.factor
new file mode 100644 (file)
index 0000000..b2745df
--- /dev/null
@@ -0,0 +1,12 @@
+! Copyright (C) 2008 Doug Coleman.
+! See https://factorcode.org/license.txt for BSD license.
+USING: kernel math sequences ;
+IN: crypto.xor
+
+: mod-nth ( n seq -- elt ) [ length mod ] [ nth ] bi ;
+
+ERROR: empty-xor-key ;
+
+: xor-crypt ( seq key -- seq' )
+    [ empty-xor-key ] when-empty
+    [ dup length <iota> ] dip '[ _ mod-nth bitxor ] 2map ;
diff --git a/extra/crypto/xor/authors.txt b/extra/crypto/xor/authors.txt
deleted file mode 100644 (file)
index 7c1b2f2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Doug Coleman
diff --git a/extra/crypto/xor/xor-tests.factor b/extra/crypto/xor/xor-tests.factor
deleted file mode 100644 (file)
index c4c7ad8..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-USING: continuations crypto.xor kernel strings tools.test ;
-IN: crypto.xor.tests
-
-! No key
-[ ""        dup  xor-crypt           ] [ T{ empty-xor-key } = ] must-fail-with
-[ { }       dup  xor-crypt           ] [ T{ empty-xor-key } = ] must-fail-with
-[ V{ }      dup  xor-crypt           ] [ T{ empty-xor-key } = ] must-fail-with
-[ "" "asdf" dupd xor-crypt xor-crypt ] [ T{ empty-xor-key } = ] must-fail-with
-
-! a xor a = 0
-{ "\0\0\0\0\0\0\0" } [ "abcdefg" dup xor-crypt ] unit-test
-
-{ { 15 15 15 15 } } [ { 10 10 10 10 } { 5 5 5 5 } xor-crypt ] unit-test
-
-{ "asdf" } [ "asdf" "key" [ xor-crypt ] [ xor-crypt ] bi >string ] unit-test
-{ "" } [ "" "key" xor-crypt >string ] unit-test
-{ "a longer message...!" } [
-    "a longer message...!"
-    "." [ xor-crypt ] [ xor-crypt ] bi >string
-] unit-test
-{ "a longer message...!" } [
-    "a longer message...!"
-    "a very long key, longer than the message even."
-    [ xor-crypt ] [ xor-crypt ] bi >string
-] unit-test
diff --git a/extra/crypto/xor/xor.factor b/extra/crypto/xor/xor.factor
deleted file mode 100644 (file)
index b2745df..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-! Copyright (C) 2008 Doug Coleman.
-! See https://factorcode.org/license.txt for BSD license.
-USING: kernel math sequences ;
-IN: crypto.xor
-
-: mod-nth ( n seq -- elt ) [ length mod ] [ nth ] bi ;
-
-ERROR: empty-xor-key ;
-
-: xor-crypt ( seq key -- seq' )
-    [ empty-xor-key ] when-empty
-    [ dup length <iota> ] dip '[ _ mod-nth bitxor ] 2map ;