RegressionTests__CryptTests.st
author Claus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 18:53:03 +0200
changeset 2327 bf482d49aeaf
parent 2179 9d14571951e7
child 2354 50df3fdd2723
permissions -rw-r--r--
#QUALITY by exept class: RegressionTests::StringTests added: #test82c_expanding
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
     1
"{ Package: 'stx:goodies/regression' }"
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
TestCase subclass:#CryptTests
1036
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
     6
	instanceVariableNames:''
1100
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
     7
	classVariableNames:'LibCryptLoaded'
1036
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
     8
	poolDictionaries:''
2045
4495922b72e8 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 1690
diff changeset
     9
	category:'tests-Regression-Files and Encodings'
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
!CryptTests class methodsFor:'documentation'!
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
documentation
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
"
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
    documentation to be added.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
    [author:]
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    19
	exept
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
    [instance variables:]
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
    [class variables:]
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
    [see also:]
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
"
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
! !
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
1100
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    30
!CryptTests class methodsFor:'initialization'!
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    31
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    32
initialize
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    33
    "Invoked at system start or when the class is dynamically loaded."
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    34
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    35
    LibCryptLoaded := false.
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    36
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    37
    "Modified: / 03-03-2014 / 12:05:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2053
e1a74171ea8b #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 2045
diff changeset
    38
    "Modified (comment): / 06-11-2018 / 10:33:59 / Claus Gittinger"
1100
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    39
! !
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    40
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    41
!CryptTests class methodsFor:'utilities'!
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    42
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    43
loadLibcryptIfAvailable
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    44
    "raise an error: this method should be implemented (TODO)"
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    45
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    46
    LibCryptLoaded ifFalse:[
2053
e1a74171ea8b #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 2045
diff changeset
    47
        (Smalltalk at: #'exept_libcrypt') isNil ifTrue:[
e1a74171ea8b #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 2045
diff changeset
    48
            [
e1a74171ea8b #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 2045
diff changeset
    49
                Smalltalk loadPackage: #'exept:libcrypt'.
e1a74171ea8b #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 2045
diff changeset
    50
            ] on: PackageLoadError do:[:ex |
e1a74171ea8b #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 2045
diff changeset
    51
                "/ Libcrypt not not available.
e1a74171ea8b #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 2045
diff changeset
    52
            ].
e1a74171ea8b #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 2045
diff changeset
    53
        ].
e1a74171ea8b #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 2045
diff changeset
    54
        LibCryptLoaded := (Smalltalk at: #'exept_libcrypt') notNil.
1100
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    55
    ].
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    56
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    57
    "Created: / 03-03-2014 / 12:03:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2053
e1a74171ea8b #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 2045
diff changeset
    58
    "Modified: / 06-11-2018 / 10:33:48 / Claus Gittinger"
1100
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    59
! !
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    60
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
!CryptTests methodsFor:'initialize / release'!
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
setUp
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
    "common setup - invoked before testing."
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
1100
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    66
    self class loadLibcryptIfAvailable.
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    67
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    68
    "Modified: / 03-03-2014 / 12:03:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
!
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
tearDown
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
    "common cleanup - invoked after testing."
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
    super tearDown
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
! !
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
!CryptTests methodsFor:'tests'!
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
test01_crc32
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
    |h|
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
    h := CRC32Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
    self assert:(h = 0).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
    h := CRC32Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
    self assert:(h = 16r414fa339).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
    h := CRC32Stream hashValueOf:'resume'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
    self assert:(h = 16r60C1D0A0).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
    h := (CRC32Stream new
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    92
		    nextPut:$r;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    93
		    nextPut:$e;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    94
		    nextPut:$s;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    95
		    nextPut:$u;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    96
		    nextPut:$m;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    97
		    nextPut:$e;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    98
		    hashValue).
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
    self assert:(h = 16r60C1D0A0).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
    h := (CRC32Stream hashValueOf:#[1 2 3 4 5 6 7]).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
    self assert:(h = 16r70E46888).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   104
    h := (CRC32Stream hashValueOf:#[16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   105
	     16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   106
	     16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   107
	     16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF]).
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
    self assert:(h = 16r8CD04C73).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
    h := (CRC32Stream new
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   111
		    next:100000 putAll:'12345678901234567890123456789012345678901234567890';
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   112
		    hashValue).
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
    self assert:(h = 16r86D7D79A).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
     self run:#test01_crc32
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
     self new test01_crc32
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
!
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
test02_md5
2138
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   122
    |h s|
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
    h := MD5Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
    self assert:(h = (ByteArray fromHexString:'d41d8cd98f00b204e9800998ecf8427e')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
    h := MD5Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
    self assert:(h = (ByteArray fromHexString:'9e107d9d372bb6826bd81d3542a419d6')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
    h := MD5Stream hashValueOf:'abc'.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   131
    self assert:(h = #[16r90 16r01 16r50 16r98 16r3C 16rD2 16r4F 16rB0
2138
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   132
                       16rD6 16r96 16r3F 16r7D 16r28 16rE1 16r7F 16r72]).
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   133
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   134
    s := MD5Stream new.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   135
    s nextPutByte:$a codePoint.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   136
    s nextPutByte:$b codePoint.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   137
    s nextPutByte:$c codePoint.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   138
    self assert:(s hashValue = #[16r90 16r01 16r50 16r98 16r3C 16rD2 16r4F 16rB0
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   139
                       16rD6 16r96 16r3F 16r7D 16r28 16rE1 16r7F 16r72]).
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   140
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   141
    s := MD5Stream new.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   142
    s nextPut:$a.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   143
    s nextPut:$b.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   144
    s nextPut:$c.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   145
    self assert:(s hashValue = #[16r90 16r01 16r50 16r98 16r3C 16rD2 16r4F 16rB0
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   146
                       16rD6 16r96 16r3F 16r7D 16r28 16rE1 16r7F 16r72]).
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   147
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   148
    s := MD5Stream new.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   149
    s nextPutAll:'abc'.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   150
    self assert:(s hashValue = #[16r90 16r01 16r50 16r98 16r3C 16rD2 16r4F 16rB0
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   151
                       16rD6 16r96 16r3F 16r7D 16r28 16rE1 16r7F 16r72]).
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   152
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   153
    s := MD5Stream new.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   154
    s nextPutAll:'abc' asByteArray.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   155
    self assert:(s hashValue = #[16r90 16r01 16r50 16r98 16r3C 16rD2 16r4F 16rB0
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   156
                       16rD6 16r96 16r3F 16r7D 16r28 16rE1 16r7F 16r72]).
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
    h := MD5Stream hashValueOf:'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   159
    self assert:(h = #[16r82 16r15 16rEF 16r07 16r96 16rA2 16r0B 16rCA
2138
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   160
                       16rAA 16rE1 16r16 16rD3 16r87 16r6C 16r66 16r4A]).
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
    h := (MD5Stream new
2138
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   163
                next:1000000 put:$a;
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   164
                hashValue).
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   165
    self assert:(h = #[16r77 16r07 16rD6 16rAE 16r4E 16r02 16r7C 16r70
2138
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   166
                       16rEE 16rA2 16rA9 16r35 16rC2 16r29 16r6F 16r21]).
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
     self run:#test02_md5
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
     self new test02_md5
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
    "
2138
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   172
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   173
    "Modified: / 23-03-2019 / 15:23:42 / Claus Gittinger"
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
!
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
test03_sha1
2138
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   177
    |h s|
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   179
    "/ test vectors from https://www.di-mgt.com.au/sha_testvectors.html
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   180
    "/ and others
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   181
    
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
    h := SHA1Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
    self assert:(h = (ByteArray fromHexString:'da39a3ee5e6b4b0d3255bfef95601890afd80709')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   185
    h := SHA1Stream hashValueOf:'abc'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   186
    self assert:(h = (ByteArray fromHexStringWithSeparators:'a9993e36 4706816a ba3e2571 7850c26c 9cd0d89d')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   187
2138
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   188
    s := SHA1Stream new.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   189
    s nextPutByte:$a codePoint.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   190
    s nextPutByte:$b codePoint.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   191
    s nextPutByte:$c codePoint.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   192
    self assert:(s hashValue = (ByteArray fromHexStringWithSeparators:'a9993e36 4706816a ba3e2571 7850c26c 9cd0d89d')).
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   193
    
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   194
    s := SHA1Stream new.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   195
    s nextPut:$a.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   196
    s nextPut:$b.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   197
    s nextPut:$c.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   198
    self assert:(s hashValue = (ByteArray fromHexStringWithSeparators:'a9993e36 4706816a ba3e2571 7850c26c 9cd0d89d')).
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   199
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   200
    s := SHA1Stream new.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   201
    s nextPutAll:'abc'.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   202
    self assert:(s hashValue = (ByteArray fromHexStringWithSeparators:'a9993e36 4706816a ba3e2571 7850c26c 9cd0d89d')).
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   203
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   204
    s := SHA1Stream new.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   205
    s nextPutAll:'abc' asByteArray.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   206
    self assert:(s hashValue = (ByteArray fromHexStringWithSeparators:'a9993e36 4706816a ba3e2571 7850c26c 9cd0d89d')).
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   207
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   208
    h := SHA1Stream hashValueOf:'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   209
    self assert:(h = (ByteArray fromHexStringWithSeparators:'84983e44 1c3bd26e baae4aa1 f95129e5 e54670f1')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   210
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   211
    h := SHA1Stream hashValueOf:'abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   212
    self assert:(h = (ByteArray fromHexStringWithSeparators:'a49b2446 a02c645b f419f995 b6709125 3a04a259')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   213
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
    h := SHA1Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
    self assert:(h = (ByteArray fromHexString:'2fd4e1c67a2d28fced849ee1bb76e7391b93eb12')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
1022
abdf6a161bc3 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1020
diff changeset
   217
    h := SHA1Stream hashValueOf:#[16r00 16r01 16r02 16r40 16r08 16r10 16r20 16r40 16r80
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   218
                                  16rFF 16rFE 16rFC 16rF8 16rF0 16rE0 16rC0 16r80].
1022
abdf6a161bc3 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1020
diff changeset
   219
    self assert:(h = #[146 31 26 53 78 167 121 73 144 117 145 88 50 42 25 52 53 37 177 73]).
abdf6a161bc3 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1020
diff changeset
   220
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   221
    h := SHA1Stream hashValueOf:(String new:1000000 withAll:$a).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   222
    self assert:(h = (ByteArray fromHexStringWithSeparators:'34aa973c d4c4daa4 f61eeb2b dbad2731 6534016f')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   223
2138
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   224
    h := SHA1Stream hashValueOf:#[48 130 2 149 160 3 2 1 2 2 1 6 48 13 6 9 42 134 72 134 247 13 1 1 5 5 0 48 111 49 25 48 23 6 3 85 4 3 19 16 69 120 101 112 116 32 76 101 118 101 108 32 50 32 67 65 49 11 48 9 6 3 85 4 6 19 2 68 69 49 26 48 24 6 3 85 4 10 19 17 69 120 101 112 116 32 83 111 102 116 119 97 114 101 32 65 71 49 11 48 9 6 3 85 4 11 19 2 67 65 49 28 48 26 6 9 42 134 72 134 247 13 1 9 1 22 13 99 101 114 116 64 101 120 101 112 116 46 100 101 48 30 23 13 48 56 48 52 50 50 50 48 48 48 48 48 90 23 13 49 54 48 54 48 49 49 57 53 57 53 57 90 48 72 49 11 48 9 6 3 85 4 6 19 2 68 69 49 26 48 24 6 3 85 4 10 19 17 69 120 101 112 116 32 83 111 102 116 119 97 114 101 32 65 71 49 29 48 27 6 3 85 4 3 19 20 101 120 112 101 99 99 111 32 99 111 100 101 32 115 105 103 110 105 110 103 48 129 159 48 13 6 9 42 134 72 134 247 13 1 1 1 5 0 3 129 141 0 48 129 137 2 129 129 0 199 150 115 153 147 36 175 136 129 9 92 77 196 254 201 72 55 141 131 27 57 64 226 5 191 35 239 72 236 142 151 98 19 209 37 164 153 24 185 170 82 62 223 250 229 224 59 238 40 73 29 84 83 109 2 188 117 254 37 86 32 136 145 32 255 118 90 26 62 76 137 45 196 88 220 234 231 81 63 165 29 158 212 132 117 227 250 68 249 54 42 54 69 145 185 217 234 66 192 205 240 247 173 215 243 64 30 52 116 19 113 47 189 90 216 64 241 30 193 187 185 219 5 35 231 222 30 183 2 3 1 0 1 163 129 254 48 129 251 48 9 6 3 85 29 19 4 2 48 0 48 29 6 3 85 29 14 4 22 4 20 142 53 132 147 2 27 121 108 9 10 151 194 20 232 134 227 84 160 251 55 48 129 153 6 3 85 29 35 4 129 145 48 129 142 128 20 36 157 29 207 97 136 114 233 22 165 218 37 28 117 161 157 224 230 74 178 161 115 164 113 48 111 49 25 48 23 6 3 85 4 3 19 16 69 120 101 112 116 32 76 101 118 101 108 32 49 32 67 65 49 11 48 9 6 3 85 4 6 19 2 68 69 49 26 48 24 6 3 85 4 10 19 17 69 120 101 112 116 32 83 111 102 116 119 97 114 101 32 65 71 49 11 48 9 6 3 85 4 11 19 2 67 65 49 28 48 26 6 9 42 134 72 134 247 13 1 9 1 22 13 99 101 114 116 64 101 120 101 112 116 46 100 101 130 1 2 48 11 6 3 85 29 15 4 4 3 2 7 128 48 19 6 3 85 29 37 4 12 48 10 6 8 43 6 1 5 5 7 3 3 48 17 6 9 96 134 72 1 134 248 66 1 1 4 4 3 2 4 16].
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   225
    self assert:(h = #[152 185 22 239 129 56 192 23 215 67 254 147 139 91 251 28 96 142 185 186]).
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   226
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
     self run:#test03_sha1
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   229
     self new test03_sha1
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
    "
1022
abdf6a161bc3 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1020
diff changeset
   231
abdf6a161bc3 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1020
diff changeset
   232
    "Modified: / 25-11-2013 / 11:42:46 / cg"
2138
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   233
    "Modified: / 23-03-2019 / 15:22:29 / Claus Gittinger"
1038
5443ea4b780e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1036
diff changeset
   234
!
5443ea4b780e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1036
diff changeset
   235
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
test04_md2
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
    |h|
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   239
    self
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   240
	skipIf:(MD2Stream isBehavior not or:[MD2Stream isLoaded not])
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   241
	description:'MD2Stream/libcrypt is not loaded'.
951
d9fe0a97fc74 class: RegressionTests::CryptTests
Stefan Vogel <sv@exept.de>
parents: 936
diff changeset
   242
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   243
    h := MD2Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   244
    self assert:(h = (ByteArray fromHexString:'8350e5a3e24c153df2275c9f80692773')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   245
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   246
    h := MD2Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   247
    self assert:(h = (ByteArray fromHexString:'03d85a0d629d2c442e987525319fc471')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   248
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   249
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   250
     self run:#test04_md2
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   251
     self new test04_md2
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   252
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   253
!
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   254
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   255
test05_md4
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   256
    |h|
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   257
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   258
    self
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   259
	skipIf:(MD4Stream isBehavior not or:[MD4Stream isLoaded not])
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   260
	description:'MD4Stream/libcrypt is not loaded'.
951
d9fe0a97fc74 class: RegressionTests::CryptTests
Stefan Vogel <sv@exept.de>
parents: 936
diff changeset
   261
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   262
    h := MD4Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   263
    self assert:(h = (ByteArray fromHexString:'31d6cfe0d16ae931b73c59d7e0c089c0')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   264
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   265
    h := MD4Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   266
    self assert:(h = (ByteArray fromHexString:'1bee69a46ba811185c194762abaeae90')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   267
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   268
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   269
     self run:#test05_md4
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   270
     self new test05_md4
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   271
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   272
!
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   273
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   274
test06_sha256
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   275
    |h|
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   276
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   277
    "/ test vectors from https://www.di-mgt.com.au/sha_testvectors.html
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   278
    "/ and others
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   279
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   280
    self
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   281
        skipIf:(SHA256Stream isBehavior not or:[SHA256Stream isLoaded not])
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   282
        description:'SHA256Stream/libcrypt is not loaded'.
951
d9fe0a97fc74 class: RegressionTests::CryptTests
Stefan Vogel <sv@exept.de>
parents: 936
diff changeset
   283
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   284
    h := SHA256Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   285
    self assert:(h = (ByteArray fromHexString:'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   286
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   287
    h := SHA256Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   288
    self assert:(h = (ByteArray fromHexString:'d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   289
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   290
    h := SHA256Stream hashValueOf:'abc'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   291
    self assert:(h = (ByteArray fromHexStringWithSeparators:'ba7816bf 8f01cfea 414140de 5dae2223 b00361a3 96177a9c b410ff61 f20015ad')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   292
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   293
    h := SHA256Stream hashValueOf:'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   294
    self assert:(h = (ByteArray fromHexStringWithSeparators:'248d6a61 d20638b8 e5c02693 0c3e6039 a33ce459 64ff2167 f6ecedd4 19db06c1')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   295
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   296
    h := SHA256Stream hashValueOf:'abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   297
    self assert:(h = (ByteArray fromHexStringWithSeparators:'cf5b16a7 78af8380 036ce59e 7b049237 0b249b11 e8f07a51 afac4503 7afee9d1')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   298
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   299
    h := SHA256Stream hashValueOf:(String new:1000000 withAll:$a).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   300
    self assert:(h = (ByteArray fromHexStringWithSeparators:'cdc76e5c 9914fb92 81a1c7e2 84d73e67 f1809a48 a497200e 046d39cc c7112cd0')).
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   301
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   302
     self run:#test06_sha256
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   303
     self new test06_sha256
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   304
    "
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   305
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   306
    "Modified: / 22-03-2019 / 12:35:28 / Claus Gittinger"
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   307
!
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   308
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   309
test07_sha224
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   310
    |h|
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   311
2142
8c3f70ccb842 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2141
diff changeset
   312
    "/ test vectors from 
8c3f70ccb842 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2141
diff changeset
   313
    "/     https://www.di-mgt.com.au/sha_testvectors.html
8c3f70ccb842 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2141
diff changeset
   314
    "/     ftp://ftp.rfc-editor.org/in-notes/rfc3874.txt 
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   315
    "/ and others
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   316
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   317
    self
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   318
        skipIf:(SHA224Stream isBehavior not or:[SHA224Stream isLoaded not])
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   319
        description:'SHA224Stream/libcrypt is not loaded'.
951
d9fe0a97fc74 class: RegressionTests::CryptTests
Stefan Vogel <sv@exept.de>
parents: 936
diff changeset
   320
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   321
    h := SHA224Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   322
    self assert:(h = (ByteArray fromHexString:'d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   323
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   324
    h := SHA224Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   325
    self assert:(h = (ByteArray fromHexString:'730e109bd7a8a32b1cb9d9a09aa2325d2430587ddbc0c38bad911525')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   326
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   327
    h := SHA224Stream hashValueOf:'abc'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   328
    self assert:(h = (ByteArray fromHexStringWithSeparators:'23097d22 3405d822 8642a477 bda255b3 2aadbce4 bda0b3f7 e36c9da7')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   329
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   330
    h := SHA224Stream hashValueOf:'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   331
    self assert:(h = (ByteArray fromHexStringWithSeparators:'75388b16 512776cc 5dba5da1 fd890150 b0c6455c b4f58b19 52522525')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   332
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   333
    h := SHA224Stream hashValueOf:'abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   334
    self assert:(h = (ByteArray fromHexStringWithSeparators:'c97ca9a5 59850ce9 7a04a96d ef6d99a9 e0e0e2ab 14e6b8df 265fc0b3')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   335
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   336
    h := SHA224Stream hashValueOf:(String new:1000000 withAll:$a).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   337
    self assert:(h = (ByteArray fromHexStringWithSeparators:'20794655 980c91d8 bbb4c1ea 97618a4b f03f4258 1948b2ee 4ee7ad67')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   338
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   339
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   340
     self run:#test07_sha224
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   341
     self new test07_sha224
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   342
    "
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   343
2142
8c3f70ccb842 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2141
diff changeset
   344
    "Modified (format): / 24-03-2019 / 10:10:39 / Claus Gittinger"
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   345
!
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   346
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   347
test08_sha384
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   348
    |h|
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   349
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   350
    "/ test vectors from https://www.di-mgt.com.au/sha_testvectors.html
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   351
    "/ and others
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   352
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   353
    self
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   354
        skipIf:(SHA384Stream isBehavior not or:[SHA384Stream isLoaded not])
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   355
        description:'SHA384Stream/libcrypt is not loaded'.
951
d9fe0a97fc74 class: RegressionTests::CryptTests
Stefan Vogel <sv@exept.de>
parents: 936
diff changeset
   356
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   357
    h := SHA384Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   358
    self assert:(h = (ByteArray fromHexString:'38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   359
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   360
    h := SHA384Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   361
    self assert:(h = (ByteArray fromHexString:'ca737f1014a48f4c0b6dd43cb177b0afd9e5169367544c494011e3317dbf9a509cb1e5dc1e85a941bbee3d7f2afbc9b1')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   362
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   363
    h := SHA384Stream hashValueOf:'abc'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   364
    self assert:(h = (ByteArray fromHexStringWithSeparators:'cb00753f45a35e8b b5a03d699ac65007 272c32ab0eded163 1a8b605a43ff5bed 8086072ba1e7cc23 58baeca134c825a7')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   365
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   366
    h := SHA384Stream hashValueOf:'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   367
    self assert:(h = (ByteArray fromHexStringWithSeparators:'3391fdddfc8dc739 3707a65b1b470939 7cf8b1d162af05ab fe8f450de5f36bc6 b0455a8520bc4e6f 5fe95b1fe3c8452b')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   368
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   369
    h := SHA384Stream hashValueOf:'abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   370
    self assert:(h = (ByteArray fromHexStringWithSeparators:'09330c33f71147e8 3d192fc782cd1b47 53111b173b3b05d2 2fa08086e3b0f712 fcc7c71a557e2db9 66c3e9fa91746039')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   371
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   372
    h := SHA384Stream hashValueOf:(String new:1000000 withAll:$a).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   373
    self assert:(h = (ByteArray fromHexStringWithSeparators:'9d0e1809716474cb 086e834e310a4a1c ed149e9c00f24852 7972cec5704c2a5b 07b8b3dc38ecc4eb ae97ddd87f3d8985')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   374
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   375
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   376
     self run:#test08_sha384
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   377
     self new test08_sha384
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   378
    "
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   379
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   380
    "Modified (format): / 22-03-2019 / 12:33:59 / Claus Gittinger"
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   381
!
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   382
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   383
test09_sha512
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   384
    |h|
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   385
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   386
    "/ test vectors from https://www.di-mgt.com.au/sha_testvectors.html
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   387
    "/ and others
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   388
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   389
    self
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   390
        skipIf:(SHA512Stream isBehavior not or:[SHA512Stream isLoaded not])
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   391
        description:'SHA512Stream/libcrypt is not loaded'.
951
d9fe0a97fc74 class: RegressionTests::CryptTests
Stefan Vogel <sv@exept.de>
parents: 936
diff changeset
   392
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   393
    h := SHA512Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   394
    self assert:(h = (ByteArray fromHexString:'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   395
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   396
    h := SHA512Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   397
    self assert:(h = (ByteArray fromHexString:'07e547d9586f6a73f73fbac0435ed76951218fb7d0c8d788a309d785436bbb642e93a252a954f23912547d1e8a3b5ed6e1bfd7097821233fa0538f3db854fee6')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   398
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   399
    h := SHA512Stream hashValueOf:'abc'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   400
    self assert:(h = (ByteArray fromHexStringWithSeparators:'ddaf35a193617aba cc417349ae204131 12e6fa4e89a97ea2 0a9eeee64b55d39a 2192992a274fc1a8 36ba3c23a3feebbd 454d4423643ce80e 2a9ac94fa54ca49f')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   401
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   402
    h := SHA512Stream hashValueOf:'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   403
    self assert:(h = (ByteArray fromHexStringWithSeparators:'204a8fc6dda82f0a 0ced7beb8e08a416 57c16ef468b228a8 279be331a703c335 96fd15c13b1b07f9 aa1d3bea57789ca0 31ad85c7a71dd703 54ec631238ca3445')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   404
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   405
    h := SHA512Stream hashValueOf:'abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   406
    self assert:(h = (ByteArray fromHexStringWithSeparators:'8e959b75dae313da 8cf4f72814fc143f 8f7779c6eb9f7fa1 7299aeadb6889018 501d289e4900f7e4 331b99dec4b5433a c7d329eeb6dd2654 5e96e55b874be909')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   407
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   408
    h := SHA512Stream hashValueOf:(String new:1000000 withAll:$a).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   409
    self assert:(h = (ByteArray fromHexStringWithSeparators:'e718483d0ce76964 4e2e42c7bc15b463 8e1f98b13b204428 5632a803afa973eb de0ff244877ea60a 4cb0432ce577c31b eb009c5c2c49aa2e 4eadb217ad8cc09b')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   410
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   411
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   412
     self run:#test09_sha512
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   413
     self new test09_sha512
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   414
    "
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   415
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   416
    "Modified: / 22-03-2019 / 12:36:56 / Claus Gittinger"
1020
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   417
!
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   418
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   419
test10_des
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   420
    |des crypt s s2|
1020
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   421
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   422
    des := DesCipher new key:#[12 34 56 78 90 12 34 56].
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   423
    crypt := des encrypt:'12345678'.
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   424
    self assert:(crypt = #[85 205 168 117 136 155 222 239]).
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   425
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   426
    "/ ------------------------------------------------
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   427
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   428
    des := DesCipher new key:#[12 34 56 78 90 12 34 56].
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   429
    s := '12345678'.
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   430
    10 timesRepeat:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   431
	s2 := ByteArray new:s size.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   432
	des cryptBlock:s from:1 "to:nil" into:s2 startingAt:1 encrypt:true.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   433
	s := s2.
1020
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   434
    ].
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   435
    self assert:(s = #[212 114 83 160 109 1 37 83]).
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   436
1023
ddc17abfb668 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1022
diff changeset
   437
    "/ ------------------------------------------------
ddc17abfb668 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1022
diff changeset
   438
ddc17abfb668 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1022
diff changeset
   439
    des := DesCipher new key:#[16rFF 16r80 56 78 90 12 34 56].
ddc17abfb668 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1022
diff changeset
   440
    crypt := des encrypt:'12345678'.
ddc17abfb668 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1022
diff changeset
   441
    self assert:(crypt = #[54 60 159 218 32 8 70 60]).
ddc17abfb668 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1022
diff changeset
   442
ddc17abfb668 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1022
diff changeset
   443
1020
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   444
    "
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   445
     self run:#test10_des
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   446
     self new test10_des
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   447
    "
1023
ddc17abfb668 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1022
diff changeset
   448
ddc17abfb668 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1022
diff changeset
   449
    "Modified: / 25-11-2013 / 11:45:34 / cg"
1035
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   450
!
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   451
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   452
test11_rsaKey
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   453
    |dir fn key ks plain cipher|
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   454
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   455
    dir := Smalltalk packageDirectoryForPackageId:'exept:expecco'.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   456
    self skipIf:dir isNil description:'directory with test key is not present'.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   457
    fn := dir asFilename construct:'license/expeccoKey.pem'.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   458
    self skipIf:fn exists not description:'test key is not present'.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   459
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   460
    key := RSASecretCryptKey fromPemStream:fn readStream.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   461
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   462
    ks := RSACryptStream new.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   463
    ks encryptWithSecretKey:true.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   464
    ks key:key.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   465
    ks stream:#[] writeStream.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   466
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   467
    plain := '12345678901234567890'.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   468
    ks encrypt:plain.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   469
    cipher := ks stream contents.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   470
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   471
    ks := RSACryptStream new.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   472
    ks encryptWithSecretKey:true.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   473
    ks key:key.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   474
    ks stream:#[] writeStream.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   475
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   476
    ks decrypt:cipher.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   477
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   478
    self assert:(ks stream contents asString = plain).
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   479
1036
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   480
    "/ -------------------------------------------
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   481
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   482
    ks := RSACryptStream new.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   483
    ks encryptWithSecretKey:true.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   484
    ks key:key.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   485
    ks stream:#[] writeStream.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   486
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   487
    plain := #[16rFF 16r80 16r00].
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   488
    ks encrypt:plain.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   489
    cipher := ks stream contents.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   490
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   491
    ks := RSACryptStream new.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   492
    ks encryptWithSecretKey:true.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   493
    ks key:key.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   494
    ks stream:#[] writeStream.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   495
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   496
    ks decrypt:cipher.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   497
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   498
    self assert:(ks stream contents = plain).
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   499
1035
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   500
    "
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   501
     self run:#test11_rsaKey
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   502
     self new test11_rsaKey
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   503
    "
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   504
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   505
    "Created: / 02-12-2013 / 12:58:19 / cg"
1511
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   506
!
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   507
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   508
test12_whirlpool
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   509
    |h|
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   510
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   511
    self
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   512
        skipIf:(WhirlpoolStream isBehavior not or:[WhirlpoolStream isLoaded not])
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   513
        description:'WhirlpoolStream/libcrypt is not loaded'.
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   514
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   515
    "/ hashes taken from wikipedia-page on whirlpool
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   516
    
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   517
    h := WhirlpoolStream hashValueOf:''.
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   518
    self assert:(h = (ByteArray fromHexString:'19FA61D75522A4669B44E39C1D2E1726C530232130D407F89AFEE0964997F7A73E83BE698B288FEBCF88E3E03C4F0757EA8964E59B63D93708B138CC42A66EB3')).
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   519
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   520
    h := WhirlpoolStream hashValueOf:'The quick brown fox jumps over the lazy dog'.
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   521
    self assert:(h = (ByteArray fromHexString:'B97DE512E91E3828B40D2B0FDCE9CEB3C4A71F9BEA8D88E75C4FA854DF36725FD2B52EB6544EDCACD6F8BEDDFEA403CB55AE31F03AD62A5EF54E42EE82C3FB35')).
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   522
1512
4ce2945272dd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1511
diff changeset
   523
    h := WhirlpoolStream hashValueOf:'The quick brown fox jumps over the lazy eog'.
4ce2945272dd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1511
diff changeset
   524
    self assert:(h = (ByteArray fromHexString:'C27BA124205F72E6847F3E19834F925CC666D0974167AF915BB462420ED40CC50900D85A1F923219D832357750492D5C143011A76988344C2635E69D06F2D38C')).
4ce2945272dd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1511
diff changeset
   525
1511
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   526
    "
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   527
     self run:#test12_whirlpool
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   528
     self new test12_whirlpool
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   529
    "
1649
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   530
!
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   531
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   532
test13_sha3
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   533
    |h|
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   534
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   535
    self
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   536
        skipIf:(SHA3_256Stream isBehavior not or:[SHA3_256Stream isLoaded not])
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   537
        description:'SHA3Stream/libcrypt is not loaded'.
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   538
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   539
    "/ hashes taken from wikipedia-page on SHA3
2139
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   540
    false ifTrue:[
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   541
        h := SHA3_224Stream hashValueOf:''.
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   542
        self assert:(h = (ByteArray fromHexString:'6b4e03423667dbb73b6e15454f0eb1abd4597f9a1b078e3f5b5a6bc7')).
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   543
    ].
1649
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   544
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   545
    h := SHA3_256Stream hashValueOf:''.
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   546
    self assert:(h = (ByteArray fromHexString:'a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a')).
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   547
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   548
    h := SHA3_384Stream hashValueOf:''.
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   549
    self assert:(h = (ByteArray fromHexString:'0c63a75b845e4f7d01107d852e4c2485c51a50aaaa94fc61995e71bbee983a2ac3713831264adb47fb6bd1e058d5f004')).
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   550
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   551
    h := SHA3_512Stream hashValueOf:''.
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   552
    self assert:(h = (ByteArray fromHexString:'a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26')).
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   553
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   554
2139
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   555
    false ifTrue:[
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   556
        h := SHA3_Shake128_256Stream hashValueOf:''.
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   557
        self assert:(h = (ByteArray fromHexString:'7f9c2ba4e88f827d616045507605853ed73b8093f6efbc88eb1a6eacfa66ef26')).
1649
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   558
2139
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   559
        h := SHA3_Shake256_512Stream hashValueOf:''.
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   560
        self assert:(h = (ByteArray fromHexString:'46b9dd2b0ba88d13233b3feb743eeb243fcd52ea62b81b82b50c27646ed5762fd75dc4ddd8c0f200cb05019d67b592f6fc821c49479ab48640292eacb3b7c4be')).
1649
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   561
2139
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   562
        h := SHA3_Shake128_256Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   563
        self assert:(h = (ByteArray fromHexString:'f4202e3c5852f9182a0430fd8144f0a74b95e7417ecae17db0f8cfeed0e3e66e')).
1649
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   564
2139
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   565
        h := SHA3_Shake128_256Stream hashValueOf:'The quick brown fox jumps over the lazy dof'.
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   566
        self assert:(h = (ByteArray fromHexString:'853f4538be0db9621a6cea659a06c1107b1f83f02b13d18297bd39d7411cf10c')).
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   567
    ].
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   568
    
1649
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   569
    "
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   570
     self run:#test13_sha3
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   571
     self new test13_sha3
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   572
    "
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   573
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   574
    "Created: / 27-07-2017 / 13:40:51 / cg"
2139
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   575
    "Modified: / 23-03-2019 / 22:41:19 / Claus Gittinger"
1690
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   576
!
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   577
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   578
test14_aesRijndael
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   579
    |plaintext key crypted hx ecb cbc ofb ctr iv|
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   580
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   581
    "/ ECB-AES-256
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   582
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   583
    plaintext := #[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   584
                    16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ].
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   585
    key := #[ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   586
              0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ].
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   587
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   588
    crypted := ecb encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   589
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   590
    self assert:(hx = 'f2258e225d794572393a6484cfced7cf925d1aa18366bcd93c33d104294c8a6f').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   591
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   592
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   593
    self assert:(ecb decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   594
    plaintext := #[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   595
                    16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ].
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   596
    key := #[ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   597
              0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ].
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   598
    cbc := RijndaelCipher new key:key mode:#CBC.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   599
    crypted := cbc encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   600
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   601
    self assert:(hx = 'f2258e225d794572393a6484cfced7cfb487a41f6b6286c00c9c8d80cb3ee9f8').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   602
    cbc := RijndaelCipher new key:key mode:#CBC.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   603
    self assert:(cbc decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   604
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   605
    "/ ECB-AES-256
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   606
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   607
    plaintext := #[ 0 17 34 51 68 85 102 119
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   608
                    136 153 170 187 204 221 238 255 ] asString.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   609
    key := #[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   610
              16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ] asString.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   611
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   612
    crypted := ecb encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   613
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   614
    self assert:(hx = '8ea2b7ca516745bfeafc49904b496089').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   615
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   616
    self assert:(ecb decrypt:crypted) asString = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   617
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   618
    "/ ECB-AES-192
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   619
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   620
    plaintext := #[ 0 17 34 51 68 85 102 119
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   621
                    136 153 170 187 204 221 238 255 ] asString.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   622
    key := #[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   623
              16 17 18 19 20 21 22 23 ] asString.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   624
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   625
    crypted := ecb encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   626
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   627
    self assert:(hx = 'dda97ca4864cdfe06eaf70a0ec0d7191').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   628
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   629
    self assert:(ecb decrypt:crypted) asString = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   630
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   631
    "/ ECB-AES-128
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   632
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   633
    plaintext := #[ 0 17 34 51 68 85 102 119
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   634
                    136 153 170 187 204 221 238 255 ] asString.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   635
    key := #[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ] asString.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   636
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   637
    crypted := ecb encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   638
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   639
    self assert:(hx = '69c4e0d86a7b0430d8cdb78070b4c55a').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   640
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   641
    self assert:(ecb decrypt:crypted) asString = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   642
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   643
    "/ Modes of operation -- NIST paper tests
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   644
    "/ ECB-AES-128
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   645
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   646
    key := #[ 43 126 21 22 40 174 210 166 171 247 21 136 9 207 79 60 ].
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   647
    plaintext := #[ 107 193 190 226 46 64 159 150 233 61 126 17 115 147 23 42 174 45 138 87 30 3 172 156 158 183 111 172 69 175 142 81 48 200 28 70 163 92 228 17 229 251 193 25 26 10 82 239 246 159 36 69 223 79 155 23 173 43 65 123 230 108 55 16 ].
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   648
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   649
    crypted := ecb encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   650
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   651
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   652
                = '3ad77bb40d7a3660a89ecaf32466ef97f5d3d58503b9699de785895a96fdbaaf43b1cd7f598ece23881b00e3ed0306887b0c785e27e8ad3f8223207104725dd4').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   653
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   654
    self assert:(ecb decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   655
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   656
    "/ ECB-AES-192
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   657
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   658
    key := #[ 142 115 176 247 218 14 100 82 200 16 243 43 128 144 121 229 98 248 234 210 82 44 107 123 ].
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   659
    plaintext := #[ 107 193 190 226 46 64 159 150 233 61 126 17 115 147 23 42 174 45 138 87 30 3 172 156 158 183 111 172 69 175 142 81 48 200 28 70 163 92 228 17 229 251 193 25 26 10 82 239 246 159 36 69 223 79 155 23 173 43 65 123 230 108 55 16 ].
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   660
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   661
    crypted := ecb encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   662
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   663
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   664
                = 'bd334f1d6e45f25ff712a214571fa5cc974104846d0ad3ad7734ecb3ecee4eefef7afd2270e2e60adce0ba2face6444e9a4b41ba738d6c72fb16691603c18e0e').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   665
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   666
    self assert:(ecb decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   667
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   668
    "/ ECB-AES-256
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   669
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   670
    key := ('603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   671
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   672
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   673
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   674
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   675
    plaintext := ('6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   676
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   677
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   678
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   679
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   680
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   681
    crypted := ecb encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   682
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   683
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   684
                = 'f3eed1bdb5d2a03c064b5a7e3db181f8591ccb10d410ed26dc5ba74a31362870b6ed21b99ca6f4f9f153e7b1beafed1d23304b7a39f9f3ff067d8d8f9e24ecc7').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   685
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   686
    self assert:(ecb decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   687
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   688
    "/ CBC-AES-128
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   689
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   690
    key := ('2b7e151628aed2a6abf7158809cf4f3c' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   691
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   692
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   693
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   694
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   695
    plaintext := ('6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   696
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   697
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   698
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   699
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   700
    iv := ('000102030405060708090a0b0c0d0e0f' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   701
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   702
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   703
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   704
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   705
    cbc := RijndaelCipher new key:key mode:#CBC.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   706
    cbc initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   707
    crypted := cbc encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   708
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   709
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   710
                = '7649abac8119b246cee98e9b12e9197d5086cb9b507219ee95db113a917678b273bed6b8e3c1743b7116e69e222295163ff1caa1681fac09120eca307586e1a7').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   711
    cbc initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   712
    self assert:(cbc decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   713
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   714
    "/ CBC-AES-192
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   715
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   716
    key := ('8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   717
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   718
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   719
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   720
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   721
    plaintext := ('6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   722
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   723
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   724
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   725
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   726
    iv := ('000102030405060708090a0b0c0d0e0f' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   727
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   728
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   729
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   730
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   731
    cbc := RijndaelCipher new key:key mode:#CBC.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   732
    cbc initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   733
    crypted := cbc encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   734
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   735
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   736
                = '4f021db243bc633d7178183a9fa071e8b4d9ada9ad7dedf4e5e738763f69145a571b242012fb7ae07fa9baac3df102e008b0e27988598881d920a9e64f5615cd').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   737
    cbc initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   738
    self assert:(cbc decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   739
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   740
    "/ CBC-AES-256
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   741
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   742
    key := ('603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   743
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   744
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   745
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   746
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   747
    plaintext := ('6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   748
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   749
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   750
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   751
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   752
    iv := ('000102030405060708090a0b0c0d0e0f' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   753
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   754
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   755
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   756
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   757
    cbc := RijndaelCipher new key:key mode:#CBC.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   758
    cbc initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   759
    crypted := cbc encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   760
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   761
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   762
                = 'f58c4c04d6e5f1ba779eabfb5f7bfbd69cfc4e967edb808d679f777bc6702c7d39f23369a9d9bacfa530e26304231461b2eb05e2c39be9fcda6c19078c6a9d1b').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   763
    cbc initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   764
    self assert:(cbc decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   765
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   766
    "/ CFB128-AES-128
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   767
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   768
    key := ('2b7e151628aed2a6abf7158809cf4f3c' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   769
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   770
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   771
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   772
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   773
    plaintext := ('6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   774
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   775
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   776
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   777
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   778
    iv := ('000102030405060708090a0b0c0d0e0f' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   779
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   780
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   781
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   782
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   783
    cbc := RijndaelCipher new key:key mode:#CFB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   784
    cbc initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   785
    crypted := cbc encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   786
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   787
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   788
                = '3b3fd92eb72dad20333449f8e83cfb4ac8a64537a0b3a93fcde3cdad9f1ce58b26751f67a3cbb140b1808cf187a4f4dfc04b05357c5d1c0eeac4c66f9ff7f2e6').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   789
    cbc initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   790
    self assert:(cbc decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   791
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   792
    "/ CFB128-AES-192
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   793
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   794
    key := ('8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   795
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   796
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   797
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   798
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   799
    plaintext := ('6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   800
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   801
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   802
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   803
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   804
    iv := ('000102030405060708090a0b0c0d0e0f' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   805
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   806
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   807
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   808
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   809
    cbc := RijndaelCipher new key:key mode:#CFB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   810
    cbc initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   811
    crypted := cbc encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   812
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   813
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   814
                = 'cdc80d6fddf18cab34c25909c99a417467ce7f7f81173621961a2b70171d3d7a2e1e8a1dd59b88b1c8e60fed1efac4c9c05f9f9ca9834fa042ae8fba584b09ff').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   815
    cbc initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   816
    self assert:(cbc decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   817
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   818
    "/ CFB128-AES-256
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   819
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   820
    key := ('603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   821
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   822
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   823
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   824
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   825
    plaintext := ('6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   826
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   827
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   828
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   829
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   830
    iv := ('000102030405060708090a0b0c0d0e0f' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   831
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   832
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   833
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   834
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   835
    cbc := RijndaelCipher new key:key mode:#CFB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   836
    cbc initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   837
    crypted := cbc encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   838
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   839
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   840
                = 'dc7e84bfda79164b7ecd8486985d386039ffed143b28b1c832113c6331e5407bdf10132415e54b92a13ed0a8267ae2f975a385741ab9cef82031623d55b1e471').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   841
    cbc initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   842
    self assert:(cbc decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   843
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   844
    "/ OFB-AES-128
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   845
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   846
    key := ('2b7e151628aed2a6abf7158809cf4f3c' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   847
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   848
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   849
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   850
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   851
    plaintext := ('6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   852
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   853
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   854
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   855
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   856
    iv := ('000102030405060708090a0b0c0d0e0f' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   857
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   858
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   859
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   860
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   861
    ofb := RijndaelCipher new key:key mode:#OFB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   862
    ofb initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   863
    crypted := ofb encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   864
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   865
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   866
                = '3b3fd92eb72dad20333449f8e83cfb4a7789508d16918f03f53c52dac54ed8259740051e9c5fecf64344f7a82260edcc304c6528f659c77866a510d9c1d6ae5e').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   867
    ofb initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   868
    self assert:(ofb decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   869
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   870
    "/ OFB-AES-192
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   871
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   872
    key := ('8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   873
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   874
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   875
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   876
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   877
    plaintext := ('6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   878
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   879
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   880
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   881
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   882
    iv := ('000102030405060708090a0b0c0d0e0f' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   883
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   884
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   885
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   886
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   887
    ofb := RijndaelCipher new key:key mode:#OFB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   888
    ofb initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   889
    crypted := ofb encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   890
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   891
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   892
                = 'cdc80d6fddf18cab34c25909c99a4174fcc28b8d4c63837c09e81700c11004018d9a9aeac0f6596f559c6d4daf59a5f26d9f200857ca6c3e9cac524bd9acc92a').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   893
    ofb initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   894
    self assert:(ofb decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   895
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   896
    "/ OFB-AES-256
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   897
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   898
    key := ('603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   899
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   900
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   901
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   902
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   903
    plaintext := ('6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   904
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   905
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   906
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   907
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   908
    iv := ('000102030405060708090a0b0c0d0e0f' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   909
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   910
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   911
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   912
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   913
    ofb := RijndaelCipher new key:key mode:#OFB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   914
    ofb initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   915
    crypted := ofb encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   916
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   917
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   918
                = 'dc7e84bfda79164b7ecd8486985d38604febdc6740d20b3ac88f6ad82a4fb08d71ab47a086e86eedf39d1c5bba97c4080126141d67f37be8538f5a8be740e484').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   919
    ofb initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   920
    self assert:(ofb decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   921
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   922
    "/ CTR-AES-128
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   923
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   924
    key := ByteArray fromHexString:'2b7e151628aed2a6abf7158809cf4f3c'.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   925
    plaintext := ByteArray 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   926
            fromHexString:'6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710'.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   927
    iv := ByteArray fromHexString:'f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff'.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   928
    ctr := RijndaelCipher new key:key mode:#CTR.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   929
    ctr initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   930
    crypted := ctr encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   931
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   932
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   933
                = '874d6191b620e3261bef6864990db6ce9806f66b7970fdff8617187bb9fffdff5ae4df3edbd5d35e5b4f09020db03eab1e031dda2fbe03d1792170a0f3009cee').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   934
    ctr initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   935
    self assert:(ctr decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   936
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   937
    "/ CTR-AES-192
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   938
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   939
    key := ('8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   940
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   941
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   942
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   943
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   944
    plaintext := ('6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   945
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   946
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   947
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   948
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   949
    iv := ('f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   950
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   951
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   952
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   953
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   954
    ctr := RijndaelCipher new key:key mode:#CTR.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   955
    ctr initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   956
    crypted := ctr encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   957
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   958
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   959
                = '1abc932417521ca24f2b0459fe7e6e0b090339ec0aa6faefd5ccc2c6f4ce8e941e36b26bd1ebc670d1bd1d665620abf74f78a7f6d29809585a97daec58c6b050').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   960
    ctr initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   961
    self assert:(ctr decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   962
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   963
    "/ CTR-AES-256
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   964
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   965
    key := ByteArray 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   966
            fromHexString:'603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4'.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   967
    plaintext := ByteArray 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   968
            fromHexString:'6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710'.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   969
    iv := ByteArray fromHexString:'f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff'.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   970
    ctr := RijndaelCipher new key:key mode:#CTR.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   971
    ctr initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   972
    crypted := ctr encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   973
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   974
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   975
                = '601ec313775789a5b7a7f504bbf3d228f443e3ca4d62b59aca84e990cacaf5c52b0930daa23de94ce87017ba2d84988ddfc9c58db67aada613c2dd08457941a6').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   976
    ctr initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   977
    self assert:(ctr decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   978
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   979
    "
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   980
     self run:#test12_aesRijndael
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   981
     self new test12_aesRijndael"
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   982
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   983
    "Created: / 26-07-2017 / 09:09:22 / cg"
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   984
    "Modified (format): / 23-08-2017 / 15:51:45 / cg"
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   985
!
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   986
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   987
test16_sha3_256
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   988
    |h|
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   989
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   990
    "/ test vectors from https://www.di-mgt.com.au/sha_testvectors.html
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   991
    "/ and others
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   992
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   993
    self
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   994
        skipIf:(SHA3_256Stream isBehavior not or:[SHA3_256Stream isLoaded not])
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   995
        description:'SHA3_256Stream/libcrypt is not loaded'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   996
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   997
    h := SHA3_256Stream hashValueOf:''.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   998
    self assert:(h = (ByteArray fromHexStringWithSeparators:'a7ffc6f8bf1ed766 51c14756a061d662 f580ff4de43b49fa 82d80a4b80f8434a')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   999
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1000
"/    h := SHA3_256Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1001
"/    self assert:(h = (ByteArray fromHexStringWithSeparators:'d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1002
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1003
    h := SHA3_256Stream hashValueOf:'abc'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1004
    self assert:(h = (ByteArray fromHexStringWithSeparators:'3a985da74fe225b2 045c172d6bd390bd 855f086e3e9d525b 46bfe24511431532')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1005
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1006
    h := SHA3_256Stream hashValueOf:'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1007
    self assert:(h = (ByteArray fromHexStringWithSeparators:'41c0dba2a9d62408 49100376a8235e2c 82e1b9998a999e21 db32dd97496d3376')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1008
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1009
    h := SHA3_256Stream hashValueOf:'abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1010
    self assert:(h = (ByteArray fromHexStringWithSeparators:'916f6061fe879741 ca6469b43971dfdb 28b1a32dc36cb325 4e812be27aad1d18')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1011
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1012
    h := SHA3_256Stream hashValueOf:(String new:1000000 withAll:$a).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1013
    self assert:(h = (ByteArray fromHexStringWithSeparators:'5c8875ae474a3634 ba4fd55ec85bffd6 61f32aca75c6d699 d0cdcb6c115891c1')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1014
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1015
    "
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1016
     self run:#test16_sha3_256
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1017
     self new test16_sha3_256
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1018
    "
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1019
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1020
    "Created: / 22-03-2019 / 12:41:10 / Claus Gittinger"
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1021
!
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1022
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1023
test17_sha3_224
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1024
    |h|
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1025
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1026
    "/ test vectors from https://www.di-mgt.com.au/sha_testvectors.html
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1027
    "/ and others
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1028
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1029
    self
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1030
        skipIf:(SHA3_224Stream isBehavior not or:[SHA3_224Stream isLoaded not])
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1031
        description:'SHA3_224Stream/libcrypt is not loaded'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1032
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1033
    h := SHA3_224Stream hashValueOf:''.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1034
    self assert:(h = (ByteArray fromHexStringWithSeparators:'6b4e03423667dbb7 3b6e15454f0eb1ab d4597f9a1b078e3f 5b5a6bc7')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1035
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1036
"/    h := SHA3_224Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1037
"/    self assert:(h = (ByteArray fromHexStringWithSeparators:'d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1038
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1039
    h := SHA3_224Stream hashValueOf:'abc'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1040
    self assert:(h = (ByteArray fromHexStringWithSeparators:'e642824c3f8cf24a d09234ee7d3c766f c9a3a5168d0c94ad 73b46fdf')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1041
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1042
    h := SHA3_224Stream hashValueOf:'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1043
    self assert:(h = (ByteArray fromHexStringWithSeparators:'8a24108b154ada21 c9fd5574494479ba 5c7e7ab76ef264ea d0fcce33')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1044
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1045
    h := SHA3_224Stream hashValueOf:'abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1046
    self assert:(h = (ByteArray fromHexStringWithSeparators:'543e6868e1666c1a 643630df77367ae5 a62a85070a51c14c bf665cbc')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1047
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1048
    h := SHA3_224Stream hashValueOf:(String new:1000000 withAll:$a).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1049
    self assert:(h = (ByteArray fromHexStringWithSeparators:'d69335b93325192e 516a912e6d19a15c b51c6ed5c15243e7 a7fd653c')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1050
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1051
    "
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1052
     self run:#test17_sha3_224
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1053
     self new test17_sha3_224
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1054
    "
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1055
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1056
    "Created: / 22-03-2019 / 12:42:49 / Claus Gittinger"
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1057
!
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1058
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1059
test18_sha3_384
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1060
    |h|
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1061
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1062
    "/ test vectors from https://www.di-mgt.com.au/sha_testvectors.html
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1063
    "/ and others
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1064
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1065
    self
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1066
        skipIf:(SHA3_384Stream isBehavior not or:[SHA3_384Stream isLoaded not])
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1067
        description:'SHA3_384Stream/libcrypt is not loaded'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1068
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1069
    h := SHA3_384Stream hashValueOf:''.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1070
    self assert:(h = (ByteArray fromHexStringWithSeparators:'0c63a75b845e4f7d 01107d852e4c2485 c51a50aaaa94fc61 995e71bbee983a2a c3713831264adb47 fb6bd1e058d5f004')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1071
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1072
"/    h := SHA3_384Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1073
"/    self assert:(h = (ByteArray fromHexStringWithSeparators:'d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1074
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1075
    h := SHA3_384Stream hashValueOf:'abc'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1076
    self assert:(h = (ByteArray fromHexStringWithSeparators:'ec01498288516fc9 26459f58e2c6ad8d f9b473cb0fc08c25 96da7cf0e49be4b2 98d88cea927ac7f5 39f1edf228376d25')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1077
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1078
    h := SHA3_384Stream hashValueOf:'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1079
    self assert:(h = (ByteArray fromHexStringWithSeparators:'991c665755eb3a4b 6bbdfb75c78a492e 8c56a22c5c4d7e42 9bfdbc32b9d4ad5a a04a1f076e62fea1 9eef51acd0657c22')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1080
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1081
    h := SHA3_384Stream hashValueOf:'abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1082
    self assert:(h = (ByteArray fromHexStringWithSeparators:'79407d3b5916b59c 3e30b09822974791 c313fb9ecc849e40 6f23592d04f625dc 8c709b98b43b3852 b337216179aa7fc7')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1083
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1084
    h := SHA3_384Stream hashValueOf:(String new:1000000 withAll:$a).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1085
    self assert:(h = (ByteArray fromHexStringWithSeparators:'eee9e24d78c18553 37983451df97c8ad 9eedf256c6334f8e 948d252d5e0e7684 7aa0774ddb90a842 190d2c558b4b8340')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1086
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1087
    "
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1088
     self run:#test18_sha3_384
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1089
     self new test18_sha3_384
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1090
    "
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1091
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1092
    "Created: / 22-03-2019 / 12:44:17 / Claus Gittinger"
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1093
!
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1094
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1095
test19_sha3_512
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1096
    |h|
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1097
2141
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1098
    "/ test vectors from https://www.di-mgt.com.au/sha_testvectors.html,
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1099
    "/ https://github.com/XKCP/XKCP/blob/master/tests/TestVectors/ShortMsgKAT_SHA3-512.txt
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1100
    "/ and others
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1101
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1102
    self
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1103
        skipIf:(SHA3_512Stream isBehavior not or:[SHA3_512Stream isLoaded not])
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1104
        description:'SHA3_512Stream/libcrypt is not loaded'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1105
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1106
    h := SHA3_512Stream hashValueOf:''.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1107
    self assert:(h = (ByteArray fromHexStringWithSeparators:'a69f73cca23a9ac5 c8b567dc185a756e 97c982164fe25859 e0d1dcc1475c80a6 15b2123af1f5f94c 11e3e9402c3ac558 f500199d95b6d3e3 01758586281dcd26')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1108
2141
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1109
    h := SHA3_512Stream hashValueOf:#[16rcc].
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1110
    self assert:(h = (ByteArray fromHexStringWithSeparators:'3939FCC8B57B63612542DA31A834E5DCC36E2EE0F652AC72E02624FA2E5ADEECC7DD6BB3580224B4D6138706FC6E80597B528051230B00621CC2B22999EAA205')).
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1111
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1112
    h := SHA3_512Stream hashValueOf:#[16r41 16rFB].
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1113
    self assert:(h = (ByteArray fromHexStringWithSeparators:'AA092865A40694D91754DBC767B5202C546E226877147A95CB8B4C8F8709FE8CD6905256B089DA37896EA5CA19D2CD9AB94C7192FC39F7CD4D598975A3013C69')).
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1114
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1115
    h := SHA3_512Stream hashValueOf:#[16r1F 16r87 16r7C].
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1116
    self assert:(h = (ByteArray fromHexStringWithSeparators:'CB20DCF54955F8091111688BECCEF48C1A2F0D0608C3A575163751F002DB30F40F2F671834B22D208591CFAF1F5ECFE43C49863A53B3225BDFD7C6591BA7658B')).
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1117
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1118
    h := SHA3_512Stream hashValueOf:#[16r21 16rF1 16r34 16rAC 16r57].
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1119
    self assert:(h = (ByteArray fromHexStringWithSeparators:'584219A84E8796076BF1178B14B9D1E2F96A4B4EF11F10CC516FBE1A29639D6BA74FB92815F9E3C5192ED4DCA20AEA5B109D52237C9956401FD44B221F82AB37')).
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1120
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1121
"/    h := SHA3_512Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1122
"/    self assert:(h = (ByteArray fromHexStringWithSeparators:'d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1123
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1124
    h := SHA3_512Stream hashValueOf:'abc'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1125
    self assert:(h = (ByteArray fromHexStringWithSeparators:'b751850b1a57168a 5693cd924b6b096e 08f621827444f70d 884f5d0240d2712e 10e116e9192af3c9 1a7ec57647e39340 57340b4cf408d5a5 6592f8274eec53f0')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1126
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1127
    h := SHA3_512Stream hashValueOf:'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1128
    self assert:(h = (ByteArray fromHexStringWithSeparators:'04a371e84ecfb5b8 b77cb48610fca818 2dd457ce6f326a0f d3d7ec2f1e91636d ee691fbe0c985302 ba1b0d8dc78c0863 46b533b49c030d99 a27daf1139d6e75e')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1129
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1130
    h := SHA3_512Stream hashValueOf:'abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1131
    self assert:(h = (ByteArray fromHexStringWithSeparators:'afebb2ef542e6579 c50cad06d2e578f9 f8dd6881d7dc824d 26360feebf18a4fa 73e3261122948efc fd492e74e82e2189 ed0fb440d187f382 270cb455f21dd185')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1132
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1133
    h := SHA3_512Stream hashValueOf:(String new:1000000 withAll:$a).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1134
    self assert:(h = (ByteArray fromHexStringWithSeparators:'3c3a876da14034ab 60627c077bb98f7e 120a2a5370212dff b3385a18d4f38859 ed311d0a9d5141ce 9cc5c66ee689b266 a8aa18ace8282a0e 0db596c90b0a7b87')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1135
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1136
    "
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1137
     self run:#test19_sha3_512
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1138
     self new test19_sha3_512
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1139
    "
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1140
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1141
    "Created: / 22-03-2019 / 12:45:45 / Claus Gittinger"
2141
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1142
    "Modified: / 23-03-2019 / 23:25:53 / Claus Gittinger"
2135
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1143
!
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1144
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1145
test99_speed
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1146
    |oneTest speedTest|
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1147
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1148
    self skipIf:true description:'speedtest; not part of automated test suite'.
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1149
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1150
    oneTest := [:name :hashStream :n :s |
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1151
        |l t nMb|
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1152
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1153
        l := s size.
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1154
        t := Time millisecondsToRun:[
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1155
                n timesRepeat:[
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1156
                        hashStream nextPutAll:s
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1157
                ].
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1158
             ].
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1159
        t := (t / 1000) asFloat.
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1160
        nMb := n*l/1024/1024.
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1161
        Transcript showCR:'%1: %2 (chunk size %3)' with:name with:(hashStream hashValue hexPrintString) with:l.
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1162
        Transcript showCR:'  %1 seconds for %2 Mb' with:t with:(nMb asFixedPoint:2).
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1163
        Transcript showCR:'  %1 Mb/s' with:((nMb / t) asFixedPoint:2).
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1164
    ].
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1165
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1166
    speedTest := [:name :hashStreamMaker |
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1167
        Transcript showCR:'-----------------------'.
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1168
        oneTest 
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1169
            value:name value:(hashStreamMaker value) value:2000000
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1170
            value:'1234567890'.
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1171
        oneTest
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1172
            value:name value:(hashStreamMaker value) value:2000000
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1173
            value:'12345678901234567890123456789012345678901234567890'.
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1174
        oneTest
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1175
            value:name value:(hashStreamMaker value) value:200000
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1176
            value:('12345678901234567890123456789012345678901234567890' ,* 20).
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1177
        oneTest
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1178
            value:name value:(hashStreamMaker value) value:20000
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1179
            value:('12345678901234567890123456789012345678901234567890' ,* 1000).
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1180
    ].
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1181
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1182
    speedTest 
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1183
        value:'md5' value:[MD5Stream new].
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1184
    speedTest 
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1185
        value:'sha1' value:[SHA1Stream new].
2140
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1186
    speedTest 
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1187
        value:'sha2-256' value:[SHA256Stream new].
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1188
    speedTest 
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1189
        value:'sha2-512' value:[SHA512Stream new].
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1190
    speedTest 
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1191
        value:'sha3-256' value:[SHA3_256Stream new].
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1192
    speedTest 
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1193
        value:'sha3-512' value:[SHA3_512Stream new].
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1194
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1195
    "current values (2012 MacBook; 2.6Ghz CoreI7):
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1196
md5: (chunk size 10)          61.53 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1197
md5: (chunk size 50)         156.34 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1198
md5: (chunk size 1000)       257.75 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1199
md5: (chunk size 50000)      277.23 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1200
-----------------------
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1201
sha1: (chunk size 10)         76.29 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1202
sha1: (chunk size 50)        211.93 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1203
sha1: (chunk size 1000)      433.49 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1204
sha1: (chunk size 50000)     449.85 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1205
-----------------------
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1206
sha2-256: (chunk size 10)     59.60 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1207
sha2-256: (chunk size 50)    125.48 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1208
sha2-256: (chunk size 1000)  185.18 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1209
sha2-256: (chunk size 50000) 188.10 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1210
-----------------------
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1211
sha2-512: (chunk size 10)     65.77 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1212
sha2-512: (chunk size 50)    140.25 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1213
sha2-512: (chunk size 1000)  207.32 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1214
sha2-512: (chunk size 50000) 222.82 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1215
-----------------------
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1216
sha3-256: (chunk size 10)     42.39 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1217
sha3-256: (chunk size 50)     69.61 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1218
sha3-256: (chunk size 1000)   78.17 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1219
sha3-256: (chunk size 50000)  83.29 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1220
-----------------------
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1221
sha3-512: (chunk size 10)     28.47 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1222
sha3-512: (chunk size 50)     39.74 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1223
sha3-512: (chunk size 1000)   44.88 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1224
sha3-512: (chunk size 50000)  45.31 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1225
    
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1226
    "
2135
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1227
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1228
    "Created: / 23-03-2019 / 14:47:01 / Claus Gittinger"
2140
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1229
    "Modified (comment): / 23-03-2019 / 23:05:24 / Claus Gittinger"
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1230
! !
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1231
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1232
!CryptTests class methodsFor:'documentation'!
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1233
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1234
version
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1235
    ^ '$Header$'
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1236
!
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1237
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1238
version_CVS
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1239
    ^ '$Header$'
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1240
! !
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1241
1100
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
  1242
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
  1243
CryptTests initialize!