]> gitweb.factorcode.org Git - factor.git/blob - extra/totp/totp-tests.factor
Fixes #2966
[factor.git] / extra / totp / totp-tests.factor
1 ! Copyright (C) 2018 Alexander Ilin.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: calendar checksums.sha tools.test totp ;
4 IN: totp.tests
5
6 CONSTANT: sha1-seed B{
7     49 50 51 52 53 54 55 56 57 48 49 50 51 52 53 54 55 56 57 48
8 }
9 CONSTANT: sha256-seed B{
10     49 50 51 52 53 54 55 56 57 48 49 50 51 52 53 54 55 56 57 48
11     49 50 51 52 53 54 55 56 57 48 49 50
12 }
13 CONSTANT: sha512-seed B{
14     49 50 51 52 53 54 55 56 57 48 49 50 51 52 53 54 55 56 57 48
15     49 50 51 52 53 54 55 56 57 48 49 50 51 52 53 54 55 56 57 48
16     49 50 51 52 53 54 55 56 57 48 49 50 51 52 53 54 55 56 57 48
17     49 50 51 52
18 }
19
20 : test-time ( n -- totp-time )
21     seconds unix-1970 time+ timestamp>count ;
22
23 { "94287082" } [ 59 test-time sha1-seed   sha1    totp* 8 digits ] unit-test
24 { "46119246" } [ 59 test-time sha256-seed sha-256 totp* 8 digits ] unit-test
25 ! { "90693936" } [ 59 test-time sha512-seed sha-512 totp* 8 digits ] unit-test
26
27 { "07081804" } [ 1111111109 test-time sha1-seed   sha1    totp* 8 digits ] unit-test
28 { "68084774" } [ 1111111109 test-time sha256-seed sha-256 totp* 8 digits ] unit-test
29 ! { "25091201" } [ 1111111109 test-time sha512-seed sha-512 totp* 8 digits ] unit-test
30
31 { "14050471" } [ 1111111111 test-time sha1-seed   sha1    totp* 8 digits ] unit-test
32 { "67062674" } [ 1111111111 test-time sha256-seed sha-256 totp* 8 digits ] unit-test
33 ! { "99943326" } [ 1111111111 test-time sha512-seed sha-512 totp* 8 digits ] unit-test
34
35 { "89005924" } [ 1234567890 test-time sha1-seed   sha1    totp* 8 digits ] unit-test
36 { "91819424" } [ 1234567890 test-time sha256-seed sha-256 totp* 8 digits ] unit-test
37 ! { "93441116" } [ 1234567890 test-time sha512-seed sha-512 totp* 8 digits ] unit-test
38
39 { "69279037" } [ 2000000000 test-time sha1-seed   sha1    totp* 8 digits ] unit-test
40 { "90698825" } [ 2000000000 test-time sha256-seed sha-256 totp* 8 digits ] unit-test
41 ! { "38618901" } [ 2000000000 test-time sha512-seed sha-512 totp* 8 digits ] unit-test
42
43 { "65353130" } [ 20000000000 test-time sha1-seed   sha1    totp* 8 digits ] unit-test
44 { "77737706" } [ 20000000000 test-time sha256-seed sha-256 totp* 8 digits ] unit-test
45 ! { "47863826" } [ 20000000000 test-time sha512-seed sha-512 totp* 8 digits ] unit-test