RegressionTests__CryptTests.st
author Claus Gittinger <cg@exept.de>
Thu, 01 Aug 2019 01:51:39 +0200
changeset 2354 50df3fdd2723
parent 2179 9d14571951e7
child 2477 6e435a605c64
permissions -rw-r--r--
#REFACTORING by exept class: RegressionTests::CryptTests removed: #tearDown just sent super
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
!CryptTests methodsFor:'tests'!
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
test01_crc32
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
    |h|
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
    h := CRC32Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
    self assert:(h = 0).
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
    h := CRC32Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
    self assert:(h = 16r414fa339).
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:'resume'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
    self assert:(h = 16r60C1D0A0).
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 new
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    86
		    nextPut:$r;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    87
		    nextPut:$e;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    88
		    nextPut:$s;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    89
		    nextPut:$u;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    90
		    nextPut:$m;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    91
		    nextPut:$e;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    92
		    hashValue).
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
    self assert:(h = 16r60C1D0A0).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
    h := (CRC32Stream hashValueOf:#[1 2 3 4 5 6 7]).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
    self assert:(h = 16r70E46888).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    98
    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
    99
	     16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   100
	     16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   101
	     16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF]).
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
    self assert:(h = 16r8CD04C73).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
    h := (CRC32Stream new
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   105
		    next:100000 putAll:'12345678901234567890123456789012345678901234567890';
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   106
		    hashValue).
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
    self assert:(h = 16r86D7D79A).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
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
     self run:#test01_crc32
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
     self new test01_crc32
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
!
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
test02_md5
2138
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   116
    |h s|
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
    h := MD5Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
    self assert:(h = (ByteArray fromHexString:'d41d8cd98f00b204e9800998ecf8427e')).
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
    h := MD5Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
    self assert:(h = (ByteArray fromHexString:'9e107d9d372bb6826bd81d3542a419d6')).
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:'abc'.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   125
    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
   126
                       16rD6 16r96 16r3F 16r7D 16r28 16rE1 16r7F 16r72]).
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   127
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   128
    s := MD5Stream new.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   129
    s nextPutByte:$a codePoint.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   130
    s nextPutByte:$b codePoint.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   131
    s nextPutByte:$c codePoint.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   132
    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
   133
                       16rD6 16r96 16r3F 16r7D 16r28 16rE1 16r7F 16r72]).
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   134
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   135
    s := MD5Stream new.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   136
    s nextPut:$a.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   137
    s nextPut:$b.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   138
    s nextPut:$c.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   139
    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
   140
                       16rD6 16r96 16r3F 16r7D 16r28 16rE1 16r7F 16r72]).
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   141
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   142
    s := MD5Stream new.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   143
    s nextPutAll:'abc'.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   144
    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
   145
                       16rD6 16r96 16r3F 16r7D 16r28 16rE1 16r7F 16r72]).
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   146
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   147
    s := MD5Stream new.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   148
    s nextPutAll:'abc' asByteArray.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   149
    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
   150
                       16rD6 16r96 16r3F 16r7D 16r28 16rE1 16r7F 16r72]).
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
    h := MD5Stream hashValueOf:'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   153
    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
   154
                       16rAA 16rE1 16r16 16rD3 16r87 16r6C 16r66 16r4A]).
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
    h := (MD5Stream new
2138
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   157
                next:1000000 put:$a;
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   158
                hashValue).
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   159
    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
   160
                       16rEE 16rA2 16rA9 16r35 16rC2 16r29 16r6F 16r21]).
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
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
     self run:#test02_md5
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
     self new test02_md5
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
    "
2138
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   166
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   167
    "Modified: / 23-03-2019 / 15:23:42 / Claus Gittinger"
805
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
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
test03_sha1
2138
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   171
    |h s|
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   173
    "/ 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
   174
    "/ and others
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   175
    
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
    h := SHA1Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
    self assert:(h = (ByteArray fromHexString:'da39a3ee5e6b4b0d3255bfef95601890afd80709')).
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
    h := SHA1Stream hashValueOf:'abc'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   180
    self assert:(h = (ByteArray fromHexStringWithSeparators:'a9993e36 4706816a ba3e2571 7850c26c 9cd0d89d')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   181
2138
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   182
    s := SHA1Stream new.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   183
    s nextPutByte:$a codePoint.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   184
    s nextPutByte:$b codePoint.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   185
    s nextPutByte:$c codePoint.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   186
    self assert:(s hashValue = (ByteArray fromHexStringWithSeparators:'a9993e36 4706816a ba3e2571 7850c26c 9cd0d89d')).
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   187
    
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 nextPut:$a.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   190
    s nextPut:$b.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   191
    s nextPut:$c.
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 nextPutAll:'abc'.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   196
    self assert:(s hashValue = (ByteArray fromHexStringWithSeparators:'a9993e36 4706816a ba3e2571 7850c26c 9cd0d89d')).
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   197
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   198
    s := SHA1Stream new.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   199
    s nextPutAll:'abc' asByteArray.
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   200
    self assert:(s hashValue = (ByteArray fromHexStringWithSeparators:'a9993e36 4706816a ba3e2571 7850c26c 9cd0d89d')).
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   201
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   202
    h := SHA1Stream hashValueOf:'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   203
    self assert:(h = (ByteArray fromHexStringWithSeparators:'84983e44 1c3bd26e baae4aa1 f95129e5 e54670f1')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   204
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   205
    h := SHA1Stream hashValueOf:'abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   206
    self assert:(h = (ByteArray fromHexStringWithSeparators:'a49b2446 a02c645b f419f995 b6709125 3a04a259')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   207
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
    h := SHA1Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
    self assert:(h = (ByteArray fromHexString:'2fd4e1c67a2d28fced849ee1bb76e7391b93eb12')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
1022
abdf6a161bc3 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1020
diff changeset
   211
    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
   212
                                  16rFF 16rFE 16rFC 16rF8 16rF0 16rE0 16rC0 16r80].
1022
abdf6a161bc3 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1020
diff changeset
   213
    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
   214
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   215
    h := SHA1Stream hashValueOf:(String new:1000000 withAll:$a).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   216
    self assert:(h = (ByteArray fromHexStringWithSeparators:'34aa973c d4c4daa4 f61eeb2b dbad2731 6534016f')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   217
2138
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   218
    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
   219
    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
   220
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   221
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
     self run:#test03_sha1
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
     self new test03_sha1
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
    "
1022
abdf6a161bc3 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1020
diff changeset
   225
abdf6a161bc3 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1020
diff changeset
   226
    "Modified: / 25-11-2013 / 11:42:46 / cg"
2138
373c662a4638 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2135
diff changeset
   227
    "Modified: / 23-03-2019 / 15:22:29 / Claus Gittinger"
1038
5443ea4b780e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1036
diff changeset
   228
!
5443ea4b780e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1036
diff changeset
   229
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
test04_md2
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
    |h|
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   233
    self
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   234
	skipIf:(MD2Stream isBehavior not or:[MD2Stream isLoaded not])
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   235
	description:'MD2Stream/libcrypt is not loaded'.
951
d9fe0a97fc74 class: RegressionTests::CryptTests
Stefan Vogel <sv@exept.de>
parents: 936
diff changeset
   236
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
    h := MD2Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
    self assert:(h = (ByteArray fromHexString:'8350e5a3e24c153df2275c9f80692773')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   239
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
    h := MD2Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
    self assert:(h = (ByteArray fromHexString:'03d85a0d629d2c442e987525319fc471')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   242
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   243
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   244
     self run:#test04_md2
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   245
     self new test04_md2
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   246
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   247
!
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
test05_md4
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   250
    |h|
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   251
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   252
    self
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   253
	skipIf:(MD4Stream isBehavior not or:[MD4Stream isLoaded not])
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   254
	description:'MD4Stream/libcrypt is not loaded'.
951
d9fe0a97fc74 class: RegressionTests::CryptTests
Stefan Vogel <sv@exept.de>
parents: 936
diff changeset
   255
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   256
    h := MD4Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   257
    self assert:(h = (ByteArray fromHexString:'31d6cfe0d16ae931b73c59d7e0c089c0')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   258
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   259
    h := MD4Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   260
    self assert:(h = (ByteArray fromHexString:'1bee69a46ba811185c194762abaeae90')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   261
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   262
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   263
     self run:#test05_md4
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   264
     self new test05_md4
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   265
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   266
!
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
test06_sha256
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   269
    |h|
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   270
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   271
    "/ 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
   272
    "/ and others
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   273
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   274
    self
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   275
        skipIf:(SHA256Stream isBehavior not or:[SHA256Stream isLoaded not])
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   276
        description:'SHA256Stream/libcrypt is not loaded'.
951
d9fe0a97fc74 class: RegressionTests::CryptTests
Stefan Vogel <sv@exept.de>
parents: 936
diff changeset
   277
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   278
    h := SHA256Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   279
    self assert:(h = (ByteArray fromHexString:'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   280
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   281
    h := SHA256Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   282
    self assert:(h = (ByteArray fromHexString:'d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   283
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   284
    h := SHA256Stream hashValueOf:'abc'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   285
    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
   286
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   287
    h := SHA256Stream hashValueOf:'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   288
    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
   289
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   290
    h := SHA256Stream hashValueOf:'abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   291
    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
   292
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   293
    h := SHA256Stream hashValueOf:(String new:1000000 withAll:$a).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   294
    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
   295
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   296
     self run:#test06_sha256
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   297
     self new test06_sha256
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   298
    "
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   299
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   300
    "Modified: / 22-03-2019 / 12:35:28 / Claus Gittinger"
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
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   303
test07_sha224
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   304
    |h|
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   305
2142
8c3f70ccb842 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2141
diff changeset
   306
    "/ test vectors from 
8c3f70ccb842 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2141
diff changeset
   307
    "/     https://www.di-mgt.com.au/sha_testvectors.html
8c3f70ccb842 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2141
diff changeset
   308
    "/     ftp://ftp.rfc-editor.org/in-notes/rfc3874.txt 
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   309
    "/ and others
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   310
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   311
    self
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   312
        skipIf:(SHA224Stream isBehavior not or:[SHA224Stream isLoaded not])
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   313
        description:'SHA224Stream/libcrypt is not loaded'.
951
d9fe0a97fc74 class: RegressionTests::CryptTests
Stefan Vogel <sv@exept.de>
parents: 936
diff changeset
   314
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   315
    h := SHA224Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   316
    self assert:(h = (ByteArray fromHexString:'d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   317
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   318
    h := SHA224Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   319
    self assert:(h = (ByteArray fromHexString:'730e109bd7a8a32b1cb9d9a09aa2325d2430587ddbc0c38bad911525')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   320
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   321
    h := SHA224Stream hashValueOf:'abc'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   322
    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
   323
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   324
    h := SHA224Stream hashValueOf:'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   325
    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
   326
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   327
    h := SHA224Stream hashValueOf:'abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   328
    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
   329
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   330
    h := SHA224Stream hashValueOf:(String new:1000000 withAll:$a).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   331
    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
   332
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   333
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   334
     self run:#test07_sha224
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   335
     self new test07_sha224
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   336
    "
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   337
2142
8c3f70ccb842 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2141
diff changeset
   338
    "Modified (format): / 24-03-2019 / 10:10:39 / Claus Gittinger"
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
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   341
test08_sha384
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   342
    |h|
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   343
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   344
    "/ 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
   345
    "/ and others
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   346
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   347
    self
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   348
        skipIf:(SHA384Stream isBehavior not or:[SHA384Stream isLoaded not])
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   349
        description:'SHA384Stream/libcrypt is not loaded'.
951
d9fe0a97fc74 class: RegressionTests::CryptTests
Stefan Vogel <sv@exept.de>
parents: 936
diff changeset
   350
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   351
    h := SHA384Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   352
    self assert:(h = (ByteArray fromHexString:'38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   353
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   354
    h := SHA384Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   355
    self assert:(h = (ByteArray fromHexString:'ca737f1014a48f4c0b6dd43cb177b0afd9e5169367544c494011e3317dbf9a509cb1e5dc1e85a941bbee3d7f2afbc9b1')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   356
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   357
    h := SHA384Stream hashValueOf:'abc'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   358
    self assert:(h = (ByteArray fromHexStringWithSeparators:'cb00753f45a35e8b b5a03d699ac65007 272c32ab0eded163 1a8b605a43ff5bed 8086072ba1e7cc23 58baeca134c825a7')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   359
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   360
    h := SHA384Stream hashValueOf:'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   361
    self assert:(h = (ByteArray fromHexStringWithSeparators:'3391fdddfc8dc739 3707a65b1b470939 7cf8b1d162af05ab fe8f450de5f36bc6 b0455a8520bc4e6f 5fe95b1fe3c8452b')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   362
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   363
    h := SHA384Stream hashValueOf:'abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   364
    self assert:(h = (ByteArray fromHexStringWithSeparators:'09330c33f71147e8 3d192fc782cd1b47 53111b173b3b05d2 2fa08086e3b0f712 fcc7c71a557e2db9 66c3e9fa91746039')).
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:(String new:1000000 withAll:$a).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   367
    self assert:(h = (ByteArray fromHexStringWithSeparators:'9d0e1809716474cb 086e834e310a4a1c ed149e9c00f24852 7972cec5704c2a5b 07b8b3dc38ecc4eb ae97ddd87f3d8985')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   368
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   369
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   370
     self run:#test08_sha384
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   371
     self new test08_sha384
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   372
    "
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   373
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   374
    "Modified (format): / 22-03-2019 / 12:33:59 / Claus Gittinger"
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
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   377
test09_sha512
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   378
    |h|
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   379
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   380
    "/ 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
   381
    "/ and others
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   382
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   383
    self
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   384
        skipIf:(SHA512Stream isBehavior not or:[SHA512Stream isLoaded not])
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   385
        description:'SHA512Stream/libcrypt is not loaded'.
951
d9fe0a97fc74 class: RegressionTests::CryptTests
Stefan Vogel <sv@exept.de>
parents: 936
diff changeset
   386
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   387
    h := SHA512Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   388
    self assert:(h = (ByteArray fromHexString:'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   389
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   390
    h := SHA512Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   391
    self assert:(h = (ByteArray fromHexString:'07e547d9586f6a73f73fbac0435ed76951218fb7d0c8d788a309d785436bbb642e93a252a954f23912547d1e8a3b5ed6e1bfd7097821233fa0538f3db854fee6')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   392
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   393
    h := SHA512Stream hashValueOf:'abc'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   394
    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
   395
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   396
    h := SHA512Stream hashValueOf:'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   397
    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
   398
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   399
    h := SHA512Stream hashValueOf:'abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   400
    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
   401
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   402
    h := SHA512Stream hashValueOf:(String new:1000000 withAll:$a).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   403
    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
   404
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   405
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   406
     self run:#test09_sha512
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   407
     self new test09_sha512
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   408
    "
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   409
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   410
    "Modified: / 22-03-2019 / 12:36:56 / Claus Gittinger"
1020
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   411
!
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   412
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   413
test10_des
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   414
    |des crypt s s2|
1020
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   415
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   416
    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
   417
    crypt := des encrypt:'12345678'.
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   418
    self assert:(crypt = #[85 205 168 117 136 155 222 239]).
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   419
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   420
    "/ ------------------------------------------------
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
    s := '12345678'.
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   424
    10 timesRepeat:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   425
	s2 := ByteArray new:s size.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   426
	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
   427
	s := s2.
1020
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   428
    ].
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   429
    self assert:(s = #[212 114 83 160 109 1 37 83]).
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   430
1023
ddc17abfb668 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1022
diff changeset
   431
    "/ ------------------------------------------------
ddc17abfb668 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1022
diff changeset
   432
ddc17abfb668 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1022
diff changeset
   433
    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
   434
    crypt := des encrypt:'12345678'.
ddc17abfb668 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1022
diff changeset
   435
    self assert:(crypt = #[54 60 159 218 32 8 70 60]).
ddc17abfb668 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1022
diff changeset
   436
ddc17abfb668 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1022
diff changeset
   437
1020
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   438
    "
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   439
     self run:#test10_des
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   440
     self new test10_des
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   441
    "
1023
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
    "Modified: / 25-11-2013 / 11:45:34 / cg"
1035
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   444
!
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   445
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   446
test11_rsaKey
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   447
    |dir fn key ks plain cipher|
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   448
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   449
    dir := Smalltalk packageDirectoryForPackageId:'exept:expecco'.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   450
    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
   451
    fn := dir asFilename construct:'license/expeccoKey.pem'.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   452
    self skipIf:fn exists not description:'test key is not present'.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   453
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   454
    key := RSASecretCryptKey fromPemStream:fn readStream.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   455
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   456
    ks := RSACryptStream new.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   457
    ks encryptWithSecretKey:true.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   458
    ks key:key.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   459
    ks stream:#[] writeStream.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   460
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   461
    plain := '12345678901234567890'.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   462
    ks encrypt:plain.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   463
    cipher := ks stream contents.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   464
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   465
    ks := RSACryptStream new.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   466
    ks encryptWithSecretKey:true.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   467
    ks key:key.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   468
    ks stream:#[] writeStream.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   469
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   470
    ks decrypt:cipher.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   471
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   472
    self assert:(ks stream contents asString = plain).
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   473
1036
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   474
    "/ -------------------------------------------
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   475
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   476
    ks := RSACryptStream new.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   477
    ks encryptWithSecretKey:true.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   478
    ks key:key.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   479
    ks stream:#[] writeStream.
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
    plain := #[16rFF 16r80 16r00].
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   482
    ks encrypt:plain.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   483
    cipher := ks stream contents.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   484
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   485
    ks := RSACryptStream new.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   486
    ks encryptWithSecretKey:true.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   487
    ks key:key.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   488
    ks stream:#[] writeStream.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   489
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   490
    ks decrypt:cipher.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   491
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   492
    self assert:(ks stream contents = plain).
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   493
1035
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   494
    "
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   495
     self run:#test11_rsaKey
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   496
     self new test11_rsaKey
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   497
    "
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   498
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   499
    "Created: / 02-12-2013 / 12:58:19 / cg"
1511
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   500
!
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   501
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   502
test12_whirlpool
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   503
    |h|
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   504
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   505
    self
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   506
        skipIf:(WhirlpoolStream isBehavior not or:[WhirlpoolStream isLoaded not])
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   507
        description:'WhirlpoolStream/libcrypt is not loaded'.
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   508
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   509
    "/ hashes taken from wikipedia-page on whirlpool
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
    h := WhirlpoolStream hashValueOf:''.
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   512
    self assert:(h = (ByteArray fromHexString:'19FA61D75522A4669B44E39C1D2E1726C530232130D407F89AFEE0964997F7A73E83BE698B288FEBCF88E3E03C4F0757EA8964E59B63D93708B138CC42A66EB3')).
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   513
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   514
    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
   515
    self assert:(h = (ByteArray fromHexString:'B97DE512E91E3828B40D2B0FDCE9CEB3C4A71F9BEA8D88E75C4FA854DF36725FD2B52EB6544EDCACD6F8BEDDFEA403CB55AE31F03AD62A5EF54E42EE82C3FB35')).
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   516
1512
4ce2945272dd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1511
diff changeset
   517
    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
   518
    self assert:(h = (ByteArray fromHexString:'C27BA124205F72E6847F3E19834F925CC666D0974167AF915BB462420ED40CC50900D85A1F923219D832357750492D5C143011A76988344C2635E69D06F2D38C')).
4ce2945272dd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1511
diff changeset
   519
1511
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   520
    "
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   521
     self run:#test12_whirlpool
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   522
     self new test12_whirlpool
1376ae5d577f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
   523
    "
1649
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   524
!
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   525
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   526
test13_sha3
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   527
    |h|
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   528
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   529
    self
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   530
        skipIf:(SHA3_256Stream isBehavior not or:[SHA3_256Stream isLoaded not])
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   531
        description:'SHA3Stream/libcrypt is not loaded'.
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   532
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   533
    "/ hashes taken from wikipedia-page on SHA3
2139
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   534
    false ifTrue:[
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   535
        h := SHA3_224Stream hashValueOf:''.
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   536
        self assert:(h = (ByteArray fromHexString:'6b4e03423667dbb73b6e15454f0eb1abd4597f9a1b078e3f5b5a6bc7')).
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   537
    ].
1649
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
    h := SHA3_256Stream hashValueOf:''.
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   540
    self assert:(h = (ByteArray fromHexString:'a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a')).
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   541
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   542
    h := SHA3_384Stream hashValueOf:''.
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   543
    self assert:(h = (ByteArray fromHexString:'0c63a75b845e4f7d01107d852e4c2485c51a50aaaa94fc61995e71bbee983a2ac3713831264adb47fb6bd1e058d5f004')).
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_512Stream hashValueOf:''.
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   546
    self assert:(h = (ByteArray fromHexString:'a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26')).
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
2139
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   549
    false ifTrue:[
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   550
        h := SHA3_Shake128_256Stream hashValueOf:''.
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   551
        self assert:(h = (ByteArray fromHexString:'7f9c2ba4e88f827d616045507605853ed73b8093f6efbc88eb1a6eacfa66ef26')).
1649
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   552
2139
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   553
        h := SHA3_Shake256_512Stream hashValueOf:''.
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   554
        self assert:(h = (ByteArray fromHexString:'46b9dd2b0ba88d13233b3feb743eeb243fcd52ea62b81b82b50c27646ed5762fd75dc4ddd8c0f200cb05019d67b592f6fc821c49479ab48640292eacb3b7c4be')).
1649
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   555
2139
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   556
        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
   557
        self assert:(h = (ByteArray fromHexString:'f4202e3c5852f9182a0430fd8144f0a74b95e7417ecae17db0f8cfeed0e3e66e')).
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_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
   560
        self assert:(h = (ByteArray fromHexString:'853f4538be0db9621a6cea659a06c1107b1f83f02b13d18297bd39d7411cf10c')).
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   561
    ].
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   562
    
1649
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   563
    "
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   564
     self run:#test13_sha3
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   565
     self new test13_sha3
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   566
    "
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   567
f195a2d879cd #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1512
diff changeset
   568
    "Created: / 27-07-2017 / 13:40:51 / cg"
2139
021eb1d8dd65 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
   569
    "Modified: / 23-03-2019 / 22:41:19 / Claus Gittinger"
1690
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   570
!
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   571
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   572
test14_aesRijndael
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   573
    |plaintext key crypted hx ecb cbc ofb ctr iv|
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   574
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   575
    "/ ECB-AES-256
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
    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
   578
                    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
   579
    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
   580
              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
   581
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   582
    crypted := ecb encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   583
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   584
    self assert:(hx = 'f2258e225d794572393a6484cfced7cf925d1aa18366bcd93c33d104294c8a6f').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   585
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   586
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   587
    self assert:(ecb decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   588
    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
   589
                    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
   590
    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
   591
              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
   592
    cbc := RijndaelCipher new key:key mode:#CBC.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   593
    crypted := cbc encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   594
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   595
    self assert:(hx = 'f2258e225d794572393a6484cfced7cfb487a41f6b6286c00c9c8d80cb3ee9f8').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   596
    cbc := RijndaelCipher new key:key mode:#CBC.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   597
    self assert:(cbc decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   598
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   599
    "/ ECB-AES-256
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   600
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   601
    plaintext := #[ 0 17 34 51 68 85 102 119
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   602
                    136 153 170 187 204 221 238 255 ] asString.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   603
    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
   604
              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
   605
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   606
    crypted := ecb encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   607
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   608
    self assert:(hx = '8ea2b7ca516745bfeafc49904b496089').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   609
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   610
    self assert:(ecb decrypt:crypted) asString = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   611
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   612
    "/ ECB-AES-192
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   613
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   614
    plaintext := #[ 0 17 34 51 68 85 102 119
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   615
                    136 153 170 187 204 221 238 255 ] asString.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   616
    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
   617
              16 17 18 19 20 21 22 23 ] asString.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   618
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   619
    crypted := ecb encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   620
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   621
    self assert:(hx = 'dda97ca4864cdfe06eaf70a0ec0d7191').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   622
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   623
    self assert:(ecb decrypt:crypted) asString = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   624
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   625
    "/ ECB-AES-128
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   626
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   627
    plaintext := #[ 0 17 34 51 68 85 102 119
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   628
                    136 153 170 187 204 221 238 255 ] asString.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   629
    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
   630
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   631
    crypted := ecb encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   632
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   633
    self assert:(hx = '69c4e0d86a7b0430d8cdb78070b4c55a').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   634
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   635
    self assert:(ecb decrypt:crypted) asString = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   636
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   637
    "/ Modes of operation -- NIST paper tests
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   638
    "/ ECB-AES-128
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   639
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   640
    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
   641
    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
   642
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   643
    crypted := ecb encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   644
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   645
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   646
                = '3ad77bb40d7a3660a89ecaf32466ef97f5d3d58503b9699de785895a96fdbaaf43b1cd7f598ece23881b00e3ed0306887b0c785e27e8ad3f8223207104725dd4').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   647
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   648
    self assert:(ecb decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   649
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   650
    "/ ECB-AES-192
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   651
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   652
    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
   653
    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
   654
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   655
    crypted := ecb encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   656
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   657
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   658
                = 'bd334f1d6e45f25ff712a214571fa5cc974104846d0ad3ad7734ecb3ecee4eefef7afd2270e2e60adce0ba2face6444e9a4b41ba738d6c72fb16691603c18e0e').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   659
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   660
    self assert:(ecb decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   661
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   662
    "/ ECB-AES-256
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   663
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   664
    key := ('603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   665
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   666
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
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
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   669
    plaintext := ('6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   670
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   671
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   672
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   673
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   674
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   675
    crypted := ecb encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   676
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   677
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   678
                = 'f3eed1bdb5d2a03c064b5a7e3db181f8591ccb10d410ed26dc5ba74a31362870b6ed21b99ca6f4f9f153e7b1beafed1d23304b7a39f9f3ff067d8d8f9e24ecc7').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   679
    ecb := RijndaelCipher new key:key mode:#ECB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   680
    self assert:(ecb decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   681
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   682
    "/ CBC-AES-128
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   683
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   684
    key := ('2b7e151628aed2a6abf7158809cf4f3c' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   685
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   686
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
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
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   689
    plaintext := ('6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   690
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   691
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   692
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   693
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   694
    iv := ('000102030405060708090a0b0c0d0e0f' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   695
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   696
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   697
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   698
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   699
    cbc := RijndaelCipher new key:key mode:#CBC.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   700
    cbc initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   701
    crypted := cbc encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   702
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   703
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   704
                = '7649abac8119b246cee98e9b12e9197d5086cb9b507219ee95db113a917678b273bed6b8e3c1743b7116e69e222295163ff1caa1681fac09120eca307586e1a7').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   705
    cbc initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   706
    self assert:(cbc decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   707
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   708
    "/ CBC-AES-192
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   709
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   710
    key := ('8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   711
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   712
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
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
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   715
    plaintext := ('6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   716
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   717
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   718
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   719
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   720
    iv := ('000102030405060708090a0b0c0d0e0f' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   721
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   722
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   723
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   724
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   725
    cbc := RijndaelCipher new key:key mode:#CBC.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   726
    cbc initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   727
    crypted := cbc encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   728
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   729
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   730
                = '4f021db243bc633d7178183a9fa071e8b4d9ada9ad7dedf4e5e738763f69145a571b242012fb7ae07fa9baac3df102e008b0e27988598881d920a9e64f5615cd').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   731
    cbc initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   732
    self assert:(cbc decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   733
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   734
    "/ CBC-AES-256
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   735
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   736
    key := ('603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   737
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   738
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
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
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   741
    plaintext := ('6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   742
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   743
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   744
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   745
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   746
    iv := ('000102030405060708090a0b0c0d0e0f' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   747
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   748
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   749
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   750
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   751
    cbc := RijndaelCipher new key:key mode:#CBC.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   752
    cbc initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   753
    crypted := cbc encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   754
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   755
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   756
                = 'f58c4c04d6e5f1ba779eabfb5f7bfbd69cfc4e967edb808d679f777bc6702c7d39f23369a9d9bacfa530e26304231461b2eb05e2c39be9fcda6c19078c6a9d1b').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   757
    cbc initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   758
    self assert:(cbc decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   759
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   760
    "/ CFB128-AES-128
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   761
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   762
    key := ('2b7e151628aed2a6abf7158809cf4f3c' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   763
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   764
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
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
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   767
    plaintext := ('6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   768
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   769
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   770
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   771
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   772
    iv := ('000102030405060708090a0b0c0d0e0f' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   773
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   774
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   775
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   776
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   777
    cbc := RijndaelCipher new key:key mode:#CFB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   778
    cbc initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   779
    crypted := cbc encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   780
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   781
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   782
                = '3b3fd92eb72dad20333449f8e83cfb4ac8a64537a0b3a93fcde3cdad9f1ce58b26751f67a3cbb140b1808cf187a4f4dfc04b05357c5d1c0eeac4c66f9ff7f2e6').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   783
    cbc initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   784
    self assert:(cbc decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   785
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   786
    "/ CFB128-AES-192
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   787
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   788
    key := ('8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   789
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   790
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
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
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   793
    plaintext := ('6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   794
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   795
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   796
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   797
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   798
    iv := ('000102030405060708090a0b0c0d0e0f' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   799
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   800
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   801
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   802
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   803
    cbc := RijndaelCipher new key:key mode:#CFB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   804
    cbc initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   805
    crypted := cbc encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   806
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   807
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   808
                = 'cdc80d6fddf18cab34c25909c99a417467ce7f7f81173621961a2b70171d3d7a2e1e8a1dd59b88b1c8e60fed1efac4c9c05f9f9ca9834fa042ae8fba584b09ff').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   809
    cbc initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   810
    self assert:(cbc decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   811
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   812
    "/ CFB128-AES-256
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   813
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   814
    key := ('603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   815
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   816
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
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
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   819
    plaintext := ('6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   820
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   821
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   822
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   823
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   824
    iv := ('000102030405060708090a0b0c0d0e0f' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   825
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   826
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   827
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   828
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   829
    cbc := RijndaelCipher new key:key mode:#CFB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   830
    cbc initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   831
    crypted := cbc encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   832
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   833
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   834
                = 'dc7e84bfda79164b7ecd8486985d386039ffed143b28b1c832113c6331e5407bdf10132415e54b92a13ed0a8267ae2f975a385741ab9cef82031623d55b1e471').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   835
    cbc initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   836
    self assert:(cbc decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   837
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   838
    "/ OFB-AES-128
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   839
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   840
    key := ('2b7e151628aed2a6abf7158809cf4f3c' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   841
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   842
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
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
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   845
    plaintext := ('6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   846
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   847
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   848
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   849
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   850
    iv := ('000102030405060708090a0b0c0d0e0f' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   851
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   852
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   853
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   854
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   855
    ofb := RijndaelCipher new key:key mode:#OFB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   856
    ofb initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   857
    crypted := ofb encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   858
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   859
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   860
                = '3b3fd92eb72dad20333449f8e83cfb4a7789508d16918f03f53c52dac54ed8259740051e9c5fecf64344f7a82260edcc304c6528f659c77866a510d9c1d6ae5e').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   861
    ofb initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   862
    self assert:(ofb decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   863
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   864
    "/ OFB-AES-192
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   865
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   866
    key := ('8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   867
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   868
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
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
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   871
    plaintext := ('6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   872
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   873
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   874
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   875
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   876
    iv := ('000102030405060708090a0b0c0d0e0f' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   877
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   878
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   879
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   880
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   881
    ofb := RijndaelCipher new key:key mode:#OFB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   882
    ofb initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   883
    crypted := ofb encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   884
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   885
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   886
                = 'cdc80d6fddf18cab34c25909c99a4174fcc28b8d4c63837c09e81700c11004018d9a9aeac0f6596f559c6d4daf59a5f26d9f200857ca6c3e9cac524bd9acc92a').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   887
    ofb initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   888
    self assert:(ofb decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   889
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   890
    "/ OFB-AES-256
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   891
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   892
    key := ('603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   893
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   894
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
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
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   897
    plaintext := ('6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   898
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   899
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   900
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   901
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   902
    iv := ('000102030405060708090a0b0c0d0e0f' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   903
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   904
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   905
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   906
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   907
    ofb := RijndaelCipher new key:key mode:#OFB.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   908
    ofb initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   909
    crypted := ofb encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   910
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   911
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   912
                = 'dc7e84bfda79164b7ecd8486985d38604febdc6740d20b3ac88f6ad82a4fb08d71ab47a086e86eedf39d1c5bba97c4080126141d67f37be8538f5a8be740e484').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   913
    ofb initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   914
    self assert:(ofb decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   915
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   916
    "/ CTR-AES-128
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   917
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   918
    key := ByteArray fromHexString:'2b7e151628aed2a6abf7158809cf4f3c'.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   919
    plaintext := ByteArray 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   920
            fromHexString:'6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710'.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   921
    iv := ByteArray fromHexString:'f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff'.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   922
    ctr := RijndaelCipher new key:key mode:#CTR.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   923
    ctr initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   924
    crypted := ctr encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   925
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   926
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   927
                = '874d6191b620e3261bef6864990db6ce9806f66b7970fdff8617187bb9fffdff5ae4df3edbd5d35e5b4f09020db03eab1e031dda2fbe03d1792170a0f3009cee').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   928
    ctr initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   929
    self assert:(ctr decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   930
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   931
    "/ CTR-AES-192
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   932
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   933
    key := ('8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   934
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   935
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
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
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   938
    plaintext := ('6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   939
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   940
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   941
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   942
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   943
    iv := ('f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff' 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   944
            pairWiseCollect:[:b1 :b2 | 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   945
                Character value:(Integer readFrom:(b1 asString , b2) radix:16).
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   946
            ]) 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   947
                asByteArray.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   948
    ctr := RijndaelCipher new key:key mode:#CTR.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   949
    ctr initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   950
    crypted := ctr encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   951
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   952
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   953
                = '1abc932417521ca24f2b0459fe7e6e0b090339ec0aa6faefd5ccc2c6f4ce8e941e36b26bd1ebc670d1bd1d665620abf74f78a7f6d29809585a97daec58c6b050').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   954
    ctr initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   955
    self assert:(ctr decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   956
     
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   957
    "/ CTR-AES-256
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   958
    
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   959
    key := ByteArray 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   960
            fromHexString:'603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4'.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   961
    plaintext := ByteArray 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   962
            fromHexString:'6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710'.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   963
    iv := ByteArray fromHexString:'f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff'.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   964
    ctr := RijndaelCipher new key:key mode:#CTR.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   965
    ctr initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   966
    crypted := ctr encrypt:plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   967
    hx := crypted hexPrintString asLowercase.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   968
    self assert:(hx 
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   969
                = '601ec313775789a5b7a7f504bbf3d228f443e3ca4d62b59aca84e990cacaf5c52b0930daa23de94ce87017ba2d84988ddfc9c58db67aada613c2dd08457941a6').
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   970
    ctr initializationVector:iv.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   971
    self assert:(ctr decrypt:crypted) = plaintext.
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   972
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   973
    "
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   974
     self run:#test12_aesRijndael
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   975
     self new test12_aesRijndael"
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   976
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   977
    "Created: / 26-07-2017 / 09:09:22 / cg"
899889bd8404 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   978
    "Modified (format): / 23-08-2017 / 15:51:45 / cg"
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   979
!
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   980
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   981
test16_sha3_256
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   982
    |h|
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   983
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   984
    "/ 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
   985
    "/ and others
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
    self
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   988
        skipIf:(SHA3_256Stream isBehavior not or:[SHA3_256Stream isLoaded not])
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   989
        description:'SHA3_256Stream/libcrypt is not loaded'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   990
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   991
    h := SHA3_256Stream hashValueOf:''.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   992
    self assert:(h = (ByteArray fromHexStringWithSeparators:'a7ffc6f8bf1ed766 51c14756a061d662 f580ff4de43b49fa 82d80a4b80f8434a')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   993
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   994
"/    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
   995
"/    self assert:(h = (ByteArray fromHexStringWithSeparators:'d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592')).
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:'abc'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   998
    self assert:(h = (ByteArray fromHexStringWithSeparators:'3a985da74fe225b2 045c172d6bd390bd 855f086e3e9d525b 46bfe24511431532')).
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:'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1001
    self assert:(h = (ByteArray fromHexStringWithSeparators:'41c0dba2a9d62408 49100376a8235e2c 82e1b9998a999e21 db32dd97496d3376')).
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:'abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1004
    self assert:(h = (ByteArray fromHexStringWithSeparators:'916f6061fe879741 ca6469b43971dfdb 28b1a32dc36cb325 4e812be27aad1d18')).
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:(String new:1000000 withAll:$a).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1007
    self assert:(h = (ByteArray fromHexStringWithSeparators:'5c8875ae474a3634 ba4fd55ec85bffd6 61f32aca75c6d699 d0cdcb6c115891c1')).
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
    "
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1010
     self run:#test16_sha3_256
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1011
     self new test16_sha3_256
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1012
    "
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1013
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1014
    "Created: / 22-03-2019 / 12:41:10 / Claus Gittinger"
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
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1017
test17_sha3_224
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1018
    |h|
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
    "/ 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
  1021
    "/ and others
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
    self
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1024
        skipIf:(SHA3_224Stream isBehavior not or:[SHA3_224Stream isLoaded not])
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1025
        description:'SHA3_224Stream/libcrypt is not loaded'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1026
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1027
    h := SHA3_224Stream hashValueOf:''.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1028
    self assert:(h = (ByteArray fromHexStringWithSeparators:'6b4e03423667dbb7 3b6e15454f0eb1ab d4597f9a1b078e3f 5b5a6bc7')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1029
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1030
"/    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
  1031
"/    self assert:(h = (ByteArray fromHexStringWithSeparators:'d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592')).
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:'abc'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1034
    self assert:(h = (ByteArray fromHexStringWithSeparators:'e642824c3f8cf24a d09234ee7d3c766f c9a3a5168d0c94ad 73b46fdf')).
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:'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1037
    self assert:(h = (ByteArray fromHexStringWithSeparators:'8a24108b154ada21 c9fd5574494479ba 5c7e7ab76ef264ea d0fcce33')).
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:'abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1040
    self assert:(h = (ByteArray fromHexStringWithSeparators:'543e6868e1666c1a 643630df77367ae5 a62a85070a51c14c bf665cbc')).
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:(String new:1000000 withAll:$a).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1043
    self assert:(h = (ByteArray fromHexStringWithSeparators:'d69335b93325192e 516a912e6d19a15c b51c6ed5c15243e7 a7fd653c')).
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
    "
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1046
     self run:#test17_sha3_224
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1047
     self new test17_sha3_224
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1048
    "
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1049
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1050
    "Created: / 22-03-2019 / 12:42:49 / Claus Gittinger"
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
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1053
test18_sha3_384
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1054
    |h|
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
    "/ 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
  1057
    "/ and others
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
    self
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1060
        skipIf:(SHA3_384Stream isBehavior not or:[SHA3_384Stream isLoaded not])
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1061
        description:'SHA3_384Stream/libcrypt is not loaded'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1062
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1063
    h := SHA3_384Stream hashValueOf:''.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1064
    self assert:(h = (ByteArray fromHexStringWithSeparators:'0c63a75b845e4f7d 01107d852e4c2485 c51a50aaaa94fc61 995e71bbee983a2a c3713831264adb47 fb6bd1e058d5f004')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1065
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1066
"/    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
  1067
"/    self assert:(h = (ByteArray fromHexStringWithSeparators:'d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592')).
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:'abc'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1070
    self assert:(h = (ByteArray fromHexStringWithSeparators:'ec01498288516fc9 26459f58e2c6ad8d f9b473cb0fc08c25 96da7cf0e49be4b2 98d88cea927ac7f5 39f1edf228376d25')).
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:'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1073
    self assert:(h = (ByteArray fromHexStringWithSeparators:'991c665755eb3a4b 6bbdfb75c78a492e 8c56a22c5c4d7e42 9bfdbc32b9d4ad5a a04a1f076e62fea1 9eef51acd0657c22')).
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:'abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1076
    self assert:(h = (ByteArray fromHexStringWithSeparators:'79407d3b5916b59c 3e30b09822974791 c313fb9ecc849e40 6f23592d04f625dc 8c709b98b43b3852 b337216179aa7fc7')).
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:(String new:1000000 withAll:$a).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1079
    self assert:(h = (ByteArray fromHexStringWithSeparators:'eee9e24d78c18553 37983451df97c8ad 9eedf256c6334f8e 948d252d5e0e7684 7aa0774ddb90a842 190d2c558b4b8340')).
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
    "
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1082
     self run:#test18_sha3_384
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1083
     self new test18_sha3_384
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1084
    "
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1085
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1086
    "Created: / 22-03-2019 / 12:44:17 / Claus Gittinger"
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
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1089
test19_sha3_512
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1090
    |h|
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1091
2141
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1092
    "/ 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
  1093
    "/ 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
  1094
    "/ and others
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1095
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1096
    self
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1097
        skipIf:(SHA3_512Stream isBehavior not or:[SHA3_512Stream isLoaded not])
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1098
        description:'SHA3_512Stream/libcrypt is not loaded'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1099
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1100
    h := SHA3_512Stream hashValueOf:''.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1101
    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
  1102
2141
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1103
    h := SHA3_512Stream hashValueOf:#[16rcc].
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1104
    self assert:(h = (ByteArray fromHexStringWithSeparators:'3939FCC8B57B63612542DA31A834E5DCC36E2EE0F652AC72E02624FA2E5ADEECC7DD6BB3580224B4D6138706FC6E80597B528051230B00621CC2B22999EAA205')).
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1105
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1106
    h := SHA3_512Stream hashValueOf:#[16r41 16rFB].
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1107
    self assert:(h = (ByteArray fromHexStringWithSeparators:'AA092865A40694D91754DBC767B5202C546E226877147A95CB8B4C8F8709FE8CD6905256B089DA37896EA5CA19D2CD9AB94C7192FC39F7CD4D598975A3013C69')).
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1108
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1109
    h := SHA3_512Stream hashValueOf:#[16r1F 16r87 16r7C].
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1110
    self assert:(h = (ByteArray fromHexStringWithSeparators:'CB20DCF54955F8091111688BECCEF48C1A2F0D0608C3A575163751F002DB30F40F2F671834B22D208591CFAF1F5ECFE43C49863A53B3225BDFD7C6591BA7658B')).
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:#[16r21 16rF1 16r34 16rAC 16r57].
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1113
    self assert:(h = (ByteArray fromHexStringWithSeparators:'584219A84E8796076BF1178B14B9D1E2F96A4B4EF11F10CC516FBE1A29639D6BA74FB92815F9E3C5192ED4DCA20AEA5B109D52237C9956401FD44B221F82AB37')).
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1114
2122
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1115
"/    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
  1116
"/    self assert:(h = (ByteArray fromHexStringWithSeparators:'d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592')).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1117
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1118
    h := SHA3_512Stream hashValueOf:'abc'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1119
    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
  1120
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1121
    h := SHA3_512Stream hashValueOf:'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1122
    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
  1123
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1124
    h := SHA3_512Stream hashValueOf:'abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu'.
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1125
    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
  1126
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1127
    h := SHA3_512Stream hashValueOf:(String new:1000000 withAll:$a).
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1128
    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
  1129
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1130
    "
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1131
     self run:#test19_sha3_512
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1132
     self new test19_sha3_512
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1133
    "
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1134
a9c72db987e7 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
  1135
    "Created: / 22-03-2019 / 12:45:45 / Claus Gittinger"
2141
3f081e763b87 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2140
diff changeset
  1136
    "Modified: / 23-03-2019 / 23:25:53 / Claus Gittinger"
2135
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1137
!
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1138
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1139
test99_speed
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1140
    |oneTest speedTest|
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1141
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1142
    self skipIf:true description:'speedtest; not part of automated test suite'.
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
    oneTest := [:name :hashStream :n :s |
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1145
        |l t nMb|
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1146
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1147
        l := s size.
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1148
        t := Time millisecondsToRun:[
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1149
                n timesRepeat:[
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1150
                        hashStream nextPutAll:s
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1151
                ].
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
        t := (t / 1000) asFloat.
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1154
        nMb := n*l/1024/1024.
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1155
        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
  1156
        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
  1157
        Transcript showCR:'  %1 Mb/s' with:((nMb / t) asFixedPoint:2).
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
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1160
    speedTest := [:name :hashStreamMaker |
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1161
        Transcript showCR:'-----------------------'.
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1162
        oneTest 
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1163
            value:name value:(hashStreamMaker value) value:2000000
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1164
            value:'1234567890'.
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1165
        oneTest
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1166
            value:name value:(hashStreamMaker value) value:2000000
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1167
            value:'12345678901234567890123456789012345678901234567890'.
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:200000
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1170
            value:('12345678901234567890123456789012345678901234567890' ,* 20).
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:20000
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1173
            value:('12345678901234567890123456789012345678901234567890' ,* 1000).
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1174
    ].
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1175
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1176
    speedTest 
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1177
        value:'md5' value:[MD5Stream new].
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1178
    speedTest 
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1179
        value:'sha1' value:[SHA1Stream new].
2140
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1180
    speedTest 
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1181
        value:'sha2-256' value:[SHA256Stream new].
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1182
    speedTest 
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1183
        value:'sha2-512' value:[SHA512Stream new].
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1184
    speedTest 
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1185
        value:'sha3-256' value:[SHA3_256Stream new].
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:'sha3-512' value:[SHA3_512Stream new].
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1188
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1189
    "current values (2012 MacBook; 2.6Ghz CoreI7):
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1190
md5: (chunk size 10)          61.53 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1191
md5: (chunk size 50)         156.34 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1192
md5: (chunk size 1000)       257.75 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1193
md5: (chunk size 50000)      277.23 Mb/s
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
sha1: (chunk size 10)         76.29 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1196
sha1: (chunk size 50)        211.93 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1197
sha1: (chunk size 1000)      433.49 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1198
sha1: (chunk size 50000)     449.85 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1199
-----------------------
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1200
sha2-256: (chunk size 10)     59.60 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1201
sha2-256: (chunk size 50)    125.48 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1202
sha2-256: (chunk size 1000)  185.18 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1203
sha2-256: (chunk size 50000) 188.10 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1204
-----------------------
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1205
sha2-512: (chunk size 10)     65.77 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1206
sha2-512: (chunk size 50)    140.25 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1207
sha2-512: (chunk size 1000)  207.32 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1208
sha2-512: (chunk size 50000) 222.82 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1209
-----------------------
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1210
sha3-256: (chunk size 10)     42.39 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1211
sha3-256: (chunk size 50)     69.61 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1212
sha3-256: (chunk size 1000)   78.17 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1213
sha3-256: (chunk size 50000)  83.29 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1214
-----------------------
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1215
sha3-512: (chunk size 10)     28.47 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1216
sha3-512: (chunk size 50)     39.74 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1217
sha3-512: (chunk size 1000)   44.88 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1218
sha3-512: (chunk size 50000)  45.31 Mb/s
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1219
    
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1220
    "
2135
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1221
e15ffe219b3f #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 2122
diff changeset
  1222
    "Created: / 23-03-2019 / 14:47:01 / Claus Gittinger"
2140
52c5782a14b9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2139
diff changeset
  1223
    "Modified (comment): / 23-03-2019 / 23:05:24 / Claus Gittinger"
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1224
! !
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1225
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1226
!CryptTests class methodsFor:'documentation'!
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1227
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1228
version
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1229
    ^ '$Header$'
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
version_CVS
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1233
    ^ '$Header$'
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1234
! !
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1235
1100
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
  1236
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
  1237
CryptTests initialize!