RegressionTests__CryptTests.st
author Claus Gittinger <cg@exept.de>
Wed, 29 Jun 2016 15:55:29 +0200
changeset 1447 2351db93aa5b
parent 1403 09e8d093107c
child 1500 d406a10b2965
child 1511 1376ae5d577f
permissions -rw-r--r--
package changes
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1403
09e8d093107c #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1402
diff changeset
     1
"{ Encoding: utf8 }"
09e8d093107c #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 1402
diff changeset
     2
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
     3
"{ Package: 'stx:goodies/regression' }"
805
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
"{ NameSpace: RegressionTests }"
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
TestCase subclass:#CryptTests
1036
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
     8
	instanceVariableNames:''
1100
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
     9
	classVariableNames:'LibCryptLoaded'
1036
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
    10
	poolDictionaries:''
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
    11
	category:'tests-Regression'
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
!
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
!CryptTests class methodsFor:'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
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
    documentation to be added.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
    [author:]
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    21
	exept
805
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
    [instance 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
    [class variables:]
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
    [see also:]
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
"
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
! !
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
1100
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    32
!CryptTests class methodsFor:'initialization'!
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    33
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    34
initialize
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    35
    "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
    36
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    37
    "/ please change as required (and remove this comment)
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    38
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    39
    LibCryptLoaded := false.
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
    "Modified: / 03-03-2014 / 12:05:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
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
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    44
!CryptTests class methodsFor:'utilities'!
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    45
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    46
loadLibcryptIfAvailable
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    47
    "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
    48
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    49
    LibCryptLoaded ifFalse:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    50
	(Smalltalk at: #SHA384Stream) isNil ifTrue:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    51
	    [
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    52
		Smalltalk loadPackage: #'exept:libcrypt'
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    53
	    ] on: PackageLoadError do:[:ex |
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    54
		"/Libcrypt not not available.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    55
	    ].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    56
	].
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    57
	LibCryptLoaded := true.
1100
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    58
    ].
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
    "Created: / 03-03-2014 / 12:03:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    61
! !
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    62
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
!CryptTests methodsFor:'initialize / release'!
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
setUp
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
    "common setup - invoked before testing."
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
1100
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    68
    self class loadLibcryptIfAvailable.
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    69
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
    70
    "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
    71
!
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
tearDown
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
    "common cleanup - invoked after testing."
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
    super tearDown
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
! !
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
!CryptTests methodsFor:'tests'!
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
test01_crc32
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
    |h|
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
    h := CRC32Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
    self assert:(h = 0).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
    h := CRC32Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
    self assert:(h = 16r414fa339).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
    h := CRC32Stream hashValueOf:'resume'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
    self assert:(h = 16r60C1D0A0).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
    h := (CRC32Stream new
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    94
		    nextPut:$r;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    95
		    nextPut:$e;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    96
		    nextPut:$s;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    97
		    nextPut:$u;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    98
		    nextPut:$m;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
    99
		    nextPut:$e;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   100
		    hashValue).
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
    self assert:(h = 16r60C1D0A0).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
    h := (CRC32Stream hashValueOf:#[1 2 3 4 5 6 7]).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
    self assert:(h = 16r70E46888).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   106
    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
   107
	     16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   108
	     16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   109
	     16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF 16rFF]).
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
    self assert:(h = 16r8CD04C73).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
    h := (CRC32Stream new
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   113
		    next:100000 putAll:'12345678901234567890123456789012345678901234567890';
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   114
		    hashValue).
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
    self assert:(h = 16r86D7D79A).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
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
     self run:#test01_crc32
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
     self new test01_crc32
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
!
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
test02_md5
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
    |h|
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
    h := MD5Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
    self assert:(h = (ByteArray fromHexString:'d41d8cd98f00b204e9800998ecf8427e')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
    h := MD5Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
    self assert:(h = (ByteArray fromHexString:'9e107d9d372bb6826bd81d3542a419d6')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
    h := MD5Stream hashValueOf:'abc'.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   133
    self assert:(h = #[16r90 16r01 16r50 16r98 16r3C 16rD2 16r4F 16rB0
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   134
		       16rD6 16r96 16r3F 16r7D 16r28 16rE1 16r7F 16r72]).
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
    h := MD5Stream hashValueOf:'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'.
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   137
    self assert:(h = #[16r82 16r15 16rEF 16r07 16r96 16rA2 16r0B 16rCA
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   138
		       16rAA 16rE1 16r16 16rD3 16r87 16r6C 16r66 16r4A]).
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
    h := (MD5Stream new
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   141
		next:1000000 put:$a;
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   142
		hashValue).
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   143
    self assert:(h = #[16r77 16r07 16rD6 16rAE 16r4E 16r02 16r7C 16r70
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   144
		       16rEE 16rA2 16rA9 16r35 16rC2 16r29 16r6F 16r21]).
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
     self run:#test02_md5
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
     self new test02_md5
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
!
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
test03_sha1
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
    |h|
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
    h := SHA1Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
    self assert:(h = (ByteArray fromHexString:'da39a3ee5e6b4b0d3255bfef95601890afd80709')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
    h := SHA1Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
    self assert:(h = (ByteArray fromHexString:'2fd4e1c67a2d28fced849ee1bb76e7391b93eb12')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
1022
abdf6a161bc3 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1020
diff changeset
   161
    h := SHA1Stream hashValueOf:#[16r00 16r01 16r02 16r40 16r08 16r10 16r20 16r40 16r80
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   162
				  16rFF 16rFE 16rFC 16rF8 16rF0 16rE0 16rC0 16r80].
1022
abdf6a161bc3 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1020
diff changeset
   163
    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
   164
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
     self run:#test03_sha1
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
     self new test03_sha1
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
    "
1022
abdf6a161bc3 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1020
diff changeset
   169
abdf6a161bc3 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1020
diff changeset
   170
    "Modified: / 25-11-2013 / 11:42:46 / cg"
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
!
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
1038
5443ea4b780e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1036
diff changeset
   173
test03b_sha1
5443ea4b780e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1036
diff changeset
   174
    |h|
5443ea4b780e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1036
diff changeset
   175
5443ea4b780e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1036
diff changeset
   176
    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].
5443ea4b780e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1036
diff changeset
   177
    self assert:(h = #[152 185 22 239 129 56 192 23 215 67 254 147 139 91 251 28 96 142 185 186]).
5443ea4b780e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1036
diff changeset
   178
5443ea4b780e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1036
diff changeset
   179
    "
5443ea4b780e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1036
diff changeset
   180
     self run:#test03b_sha1
5443ea4b780e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1036
diff changeset
   181
     self new test03b_sha1
5443ea4b780e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1036
diff changeset
   182
    "
5443ea4b780e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1036
diff changeset
   183
5443ea4b780e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1036
diff changeset
   184
    "Created: / 24-01-2014 / 17:47:22 / cg"
5443ea4b780e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1036
diff changeset
   185
!
5443ea4b780e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1036
diff changeset
   186
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
test04_md2
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
    |h|
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   190
    self
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   191
	skipIf:(MD2Stream isBehavior not or:[MD2Stream isLoaded not])
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   192
	description:'MD2Stream/libcrypt is not loaded'.
951
d9fe0a97fc74 class: RegressionTests::CryptTests
Stefan Vogel <sv@exept.de>
parents: 936
diff changeset
   193
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
    h := MD2Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
    self assert:(h = (ByteArray fromHexString:'8350e5a3e24c153df2275c9f80692773')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
    h := MD2Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
    self assert:(h = (ByteArray fromHexString:'03d85a0d629d2c442e987525319fc471')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
     self run:#test04_md2
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
     self new test04_md2
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
!
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
test05_md4
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
    |h|
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   209
    self
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   210
	skipIf:(MD4Stream isBehavior not or:[MD4Stream isLoaded not])
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   211
	description:'MD4Stream/libcrypt is not loaded'.
951
d9fe0a97fc74 class: RegressionTests::CryptTests
Stefan Vogel <sv@exept.de>
parents: 936
diff changeset
   212
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
    h := MD4Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
    self assert:(h = (ByteArray fromHexString:'31d6cfe0d16ae931b73c59d7e0c089c0')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
    h := MD4Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   217
    self assert:(h = (ByteArray fromHexString:'1bee69a46ba811185c194762abaeae90')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   219
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
     self run:#test05_md4
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   221
     self new test05_md4
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
!
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
test06_sha256
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   226
    |h|
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   228
    self
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   229
	skipIf:(SHA256Stream isBehavior not or:[SHA256Stream isLoaded not])
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   230
	description:'SHA256Stream/libcrypt is not loaded'.
951
d9fe0a97fc74 class: RegressionTests::CryptTests
Stefan Vogel <sv@exept.de>
parents: 936
diff changeset
   231
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
    h := SHA256Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
    self assert:(h = (ByteArray fromHexString:'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
    h := SHA256Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
    self assert:(h = (ByteArray fromHexString:'d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   239
     self run:#test06_sha256
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
     self new test06_sha256
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
    "
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
test07_sha224
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   245
    |h|
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   246
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   247
    self
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   248
	skipIf:(SHA224Stream isBehavior not or:[SHA224Stream isLoaded not])
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   249
	description:'SHA224Stream/libcrypt is not loaded'.
951
d9fe0a97fc74 class: RegressionTests::CryptTests
Stefan Vogel <sv@exept.de>
parents: 936
diff changeset
   250
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   251
    h := SHA224Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   252
    self assert:(h = (ByteArray fromHexString:'d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   253
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   254
    h := SHA224Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   255
    self assert:(h = (ByteArray fromHexString:'730e109bd7a8a32b1cb9d9a09aa2325d2430587ddbc0c38bad911525')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   256
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   257
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   258
     self run:#test07_sha224
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   259
     self new test07_sha224
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   260
    "
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
test08_sha384
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   264
    |h|
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   265
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   266
    self
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   267
	skipIf:(SHA384Stream isBehavior not or:[SHA384Stream isLoaded not])
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   268
	description:'SHA384Stream/libcrypt is not loaded'.
951
d9fe0a97fc74 class: RegressionTests::CryptTests
Stefan Vogel <sv@exept.de>
parents: 936
diff changeset
   269
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   270
    h := SHA384Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   271
    self assert:(h = (ByteArray fromHexString:'38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   272
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   273
    h := SHA384Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   274
    self assert:(h = (ByteArray fromHexString:'ca737f1014a48f4c0b6dd43cb177b0afd9e5169367544c494011e3317dbf9a509cb1e5dc1e85a941bbee3d7f2afbc9b1')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   275
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   276
    "
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   277
     self run:#test08_sha384
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   278
     self new test08_sha384
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   279
    "
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
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   282
test09_sha512
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   283
    |h|
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   284
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   285
    self
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   286
	skipIf:(SHA512Stream isBehavior not or:[SHA512Stream isLoaded not])
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   287
	description:'SHA512Stream/libcrypt is not loaded'.
951
d9fe0a97fc74 class: RegressionTests::CryptTests
Stefan Vogel <sv@exept.de>
parents: 936
diff changeset
   288
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   289
    h := SHA512Stream hashValueOf:''.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   290
    self assert:(h = (ByteArray fromHexString:'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   291
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   292
    h := SHA512Stream hashValueOf:'The quick brown fox jumps over the lazy dog'.
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   293
    self assert:(h = (ByteArray fromHexString:'07e547d9586f6a73f73fbac0435ed76951218fb7d0c8d788a309d785436bbb642e93a252a954f23912547d1e8a3b5ed6e1bfd7097821233fa0538f3db854fee6')).
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   294
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:#test09_sha512
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   297
     self new test09_sha512
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   298
    "
1020
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   299
!
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   300
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   301
test10_des
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   302
    |des crypt s s2|
1020
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   303
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   304
    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
   305
    crypt := des encrypt:'12345678'.
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   306
    self assert:(crypt = #[85 205 168 117 136 155 222 239]).
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   307
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   308
    "/ ------------------------------------------------
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   309
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   310
    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
   311
    s := '12345678'.
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   312
    10 timesRepeat:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   313
	s2 := ByteArray new:s size.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 1403
diff changeset
   314
	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
   315
	s := s2.
1020
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   316
    ].
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   317
    self assert:(s = #[212 114 83 160 109 1 37 83]).
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   318
1023
ddc17abfb668 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1022
diff changeset
   319
    "/ ------------------------------------------------
ddc17abfb668 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1022
diff changeset
   320
ddc17abfb668 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1022
diff changeset
   321
    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
   322
    crypt := des encrypt:'12345678'.
ddc17abfb668 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1022
diff changeset
   323
    self assert:(crypt = #[54 60 159 218 32 8 70 60]).
ddc17abfb668 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1022
diff changeset
   324
ddc17abfb668 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1022
diff changeset
   325
1020
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   326
    "
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   327
     self run:#test10_des
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   328
     self new test10_des
a1a9948420e1 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 951
diff changeset
   329
    "
1023
ddc17abfb668 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1022
diff changeset
   330
ddc17abfb668 class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1022
diff changeset
   331
    "Modified: / 25-11-2013 / 11:45:34 / cg"
1035
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   332
!
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   333
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   334
test11_rsaKey
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   335
    |dir fn key ks plain cipher|
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   336
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   337
    dir := Smalltalk packageDirectoryForPackageId:'exept:expecco'.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   338
    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
   339
    fn := dir asFilename construct:'license/expeccoKey.pem'.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   340
    self skipIf:fn exists not description:'test key is not present'.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   341
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   342
    key := RSASecretCryptKey fromPemStream:fn readStream.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   343
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   344
    ks := RSACryptStream new.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   345
    ks encryptWithSecretKey:true.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   346
    ks key:key.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   347
    ks stream:#[] writeStream.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   348
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   349
    plain := '12345678901234567890'.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   350
    ks encrypt:plain.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   351
    cipher := ks stream contents.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   352
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   353
    ks := RSACryptStream new.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   354
    ks encryptWithSecretKey:true.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   355
    ks key:key.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   356
    ks stream:#[] writeStream.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   357
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   358
    ks decrypt:cipher.
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   359
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   360
    self assert:(ks stream contents asString = plain).
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   361
1036
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   362
    "/ -------------------------------------------
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   363
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   364
    ks := RSACryptStream new.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   365
    ks encryptWithSecretKey:true.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   366
    ks key:key.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   367
    ks stream:#[] writeStream.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   368
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   369
    plain := #[16rFF 16r80 16r00].
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   370
    ks encrypt:plain.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   371
    cipher := ks stream contents.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   372
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   373
    ks := RSACryptStream new.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   374
    ks encryptWithSecretKey:true.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   375
    ks key:key.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   376
    ks stream:#[] writeStream.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   377
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   378
    ks decrypt:cipher.
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   379
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   380
    self assert:(ks stream contents = plain).
c42c54df984e class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
   381
1035
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   382
    "
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   383
     self run:#test11_rsaKey
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   384
     self new test11_rsaKey
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   385
    "
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   386
2be1f5b478ca class: RegressionTests::CryptTests
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   387
    "Created: / 02-12-2013 / 12:58:19 / cg"
805
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   388
! !
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
!CryptTests class methodsFor:'documentation'!
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   391
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   392
version
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   393
    ^ '$Header$'
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   394
!
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   395
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   396
version_CVS
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   397
    ^ '$Header$'
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   398
! !
93f37c5c8c6b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   399
1100
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
   400
1991bf9454ab Load exept:libcrypt if not already loaded.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1038
diff changeset
   401
CryptTests initialize!