Overview
| Comment: | Improved tests |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
d603b4fb4997b2d09eac84fa8856396d |
| User & Date: | rkeene on 2018-07-02 06:12:09.912 |
| Other Links: | manifest | tags |
Context
|
2018-07-02
| ||
| 06:12 | Build system improvements check-in: d62ac8ffe1 user: rkeene tags: trunk | |
| 06:12 | Improved tests check-in: d603b4fb49 user: rkeene tags: trunk | |
| 06:10 | Check for more headers, and add more debugging flags check-in: bdce793196 user: rkeene tags: trunk | |
Changes
Modified build/test/test.tcl
from [e7f0ffae87]
to [616d1fdee7].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#! /usr/bin/env tclsh
lappend auto_path [file join [file dirname [info script]] .. ..]
package require nano
proc test_signatures {} {
# Detached signature
set data [binary decode hex 0000000000000000000000000000000000000000000000000000000000000000]
set key [binary decode hex C4D214F19E706E9C7487CEF00DE8059200C32414F0ED82E5E33B523AEDF719BA]
set sig [string toupper [binary encode hex [::nano::internal::signDetached $data $key]]]
set sig_expected 1C2DE9B8A71215F949A11BBEA7EFA4ECD67A8C2B5A9AD98AE6B1AB7F7A3D2CFD715F570309148C7B39C346FB9B91B321D7E75BD598F271AF31AB60A99D086709
if {$sig ne $sig_expected} {
| > > > > | | | | | | | | | | > > > | > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
#! /usr/bin/env tclsh
lappend auto_path [file join [file dirname [info script]] .. ..]
package require nano
proc test_selftest {} {
::nano::internal::selfTest
return true
}
proc test_signatures {} {
# Detached signature
set data [binary decode hex 0000000000000000000000000000000000000000000000000000000000000000]
set key [binary decode hex C4D214F19E706E9C7487CEF00DE8059200C32414F0ED82E5E33B523AEDF719BA]
set sig [string toupper [binary encode hex [::nano::internal::signDetached $data $key]]]
set sig_expected 1C2DE9B8A71215F949A11BBEA7EFA4ECD67A8C2B5A9AD98AE6B1AB7F7A3D2CFD715F570309148C7B39C346FB9B91B321D7E75BD598F271AF31AB60A99D086709
if {$sig ne $sig_expected} {
puts "\[1.FAIL\] Got: $sig"
puts "\[1.FAIL\] Exp: $sig_expected"
return false
}
# Public key generation
set pubKey_expected "FE1934767B26FA05A1526E40101E899959AB088FA1C4219865F33669E8EB99B6"
set pubKey [::nano::internal::publicKey $key]
set pubKey [string toupper [binary encode hex $pubKey]]
if {$pubKey ne $pubKey_expected} {
puts "\[2.FAIL\] Got: $pubKey"
puts "\[2.FAIL\] Exp: $pubKey_expected"
return false
}
# Detached signature verification
## Positive
set data [binary decode hex 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF]
set key [binary decode hex C4D214F19E706E9C7487CEF00DE8059200C32414F0ED82E5E33B523AEDF719BA]
set pubKey [::nano::internal::publicKey $key]
set sig [::nano::internal::signDetached $data $key]
set verified [::nano::internal::verifyDetached $data $sig $pubKey]
if {!$verified} {
puts "\[3.FAIL\] Got: $verified"
puts "\[3.FAIL\] Exp: true"
return false
}
## Negative
set pubKey [binary decode hex "7E0008FAD05BD9E22A8DEBA963CE3C9C769BC01B00974226D264C9078A7A98A8"]
set verified [::nano::internal::verifyDetached $data $sig $pubKey]
if {$verified} {
puts "\[4.FAIL\] Got: $verified"
puts "\[4.FAIL\] Exp: false"
return false
}
return true
}
proc test_hashing {} {
# Basic test
set data [binary decode hex 4451686437A2BF5C4759100DE2ADE0F39B6877275AF997906B71B1A8EF1550A2]
set hash [binary encode hex [::nano::internal::hashData $data]]
set hash_expected "84ac733547d71c312e707508646008a9d8f84f7093e60ca91e4eb376365ac1921fdde6e8ccb3875ea12369d9f6fb02237f51f4c05f3555e57d11800deda7319f"
if {$hash ne $hash_expected} {
puts "\[1.FAIL\] Got: $hash"
puts "\[1.FAIL\] Exp: $hash_expected"
return false
}
return true
}
proc test_keygeneration {} {
set key [::nano::internal::generateKey]
if {[string length $key] != 32} {
puts "\[1.FAIL\] Got: [string length $key]"
puts "\[1.FAIL\] Exp: 32"
return false
}
set data [binary decode hex 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF]
set pubKey [::nano::internal::publicKey $key]
set sig [::nano::internal::signDetached $data $key]
set verified [::nano::internal::verifyDetached $data $sig $pubKey]
if {!$verified} {
puts "\[2.FAIL\] Got: $verified"
puts "\[2.FAIL\] Exp: true"
}
return true
}
set tests {
selftest
signatures
hashing
keygeneration
}
foreach test $tests {
if {![test_$test]} {
|
| ︙ | ︙ |