blob: 9dc90036cc458653d35332510929e425a5d2f395 [file] [log] [blame]
#
# ncad.test --
# nca-073-9
#
# Copyright (c) 1996-2000 by Netcetera AG.
# Copyright (c) 2001 by Apache Software Foundation.
# All rights reserved.
#
# See the file "license.terms" for information on usage and
# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
# @(#) $Id$
#
#------------------------------------------------------------------------------
# tcltest package
#------------------------------------------------------------------------------
if {[lsearch [namespace children] ::tcltest] == -1} {
package require tcltest
namespace import ::tcltest::*
}
# -----------------------------------------------------------------------------
# errors
# -----------------------------------------------------------------------------
test ncad-1.1 {wrong num args} {
catch {web::encryptd} msg
set msg
} {wrong # args: should be "web::encryptd msg"}
test ncad-1.2 {missing string} {
catch {web::decryptd} msg
set msg
} {wrong # args: should be "web::decryptd msg"}
test ncad-1.3 {too many args} {
catch {web::decryptd "a" "b" "c"} msg
set msg
} {wrong # args: should be "web::decryptd msg"}
test ncad-1.4 {unknown type} {
set res ""
set tmp [catch {set res [web::decryptd "XZnca"]} msg]
lappend res $tmp $msg
set res
## 3 is TCL_BREAK
## 4 is TCL_CONTINUE --> unknown type
} {4 {}}
# -----------------------------------------------------------------------------
# normal operation
# -----------------------------------------------------------------------------
test ncad-2.1 {set key} {
web::cryptdkey
set res [web::encryptd "Hello éàè!"]
web::cryptdkey 1234567890
lappend res [web::encryptd "Hello éàè!"]
web::cryptdkey
lappend res [web::encryptd "Hello éàè!"]
set res
} {XDIVAhkgYnDaThxIKkSwhFLko9Z XD4SyV6uJBYHoare6wH8mUow1GS XDIVAhkgYnDaThxIKkSwhFLko9Z}
test ncad-2.2 {normal operation} {
web::encryptd "üöä dsds aaaa ääé GHGHGH"
} {XDz40BSuEkgYeZJDDTIdbjoPjBCwu2CqjGef2jSNUfClk0lrQzPW}
test ncad-2.3 {empty string} {
web::encryptd ""
} {}
test ncad-3.4 {empty string} {
catch {web::decryptd ""}
} {4}
test ncad-2.5 {symmetry} {
set msg "This is a international message äüö è \uFF01 \uFFF1"
string compare $msg [web::decryptd [web::encryptd $msg]]
} {0}
test ncad-2.6 {encryptd long string} {
set tmp "cmd=test id=0 t=941012649 "
append tmp [string repeat "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZöäüéàèÖÄÜÉÀÈ@@#\"*%&+<>-_.,;" 13]
web::encryptd $tmp
} {XDZuRDLA6ByKztGaqIUXOwKYQNShjVmulMJC9xJ5sA52R7KsqmlK9bP6HAQckLg9BoVEmcyvqIUpKzRaHlfc2HfoZfovAhOpHlxalsrwrRiATLH9FE0qE7LKJ4b8tMP52w7YQazn9bJMT0D4jGhCM8HfcwqUjZrronssci5K6Akv4kAjSL1OJ1gWjs59lnqOZmfpWY0QtwFBTeJgQ6ULwfxqGapFGmKK6UX0y6GunKjQnUD8HOcVCd5dpScpoton4WpdZRX1nd1YmlkZ41lZaNJXgLCsFDYUCBIn01jHiHRKT2ZjFeX860chWTz6HUWqg7WS8xw5F6VhqArUBjpLsuZGPpm4mSeIIolVni2lhMTBwzOIWOOSynZxzomu4mfCaNkRAUdkynUvNQcFPGFKFIXPhqkjocMQnq2B9SxqaMNKJYhQH4RaVHbL6MFAXBMsoifCzPBqzq4E6RkBBmR8eSmha0ATwZz6lDcCcqEM7CMwBvcqJalbm0zxtBRBVE9AHzkrGANLLPv9vJL64CMZSzNoBsbz6dq0fDe1B2BYVkeBQEWdXgodNVs2EY6FM0OvcT7SL1eSdkvxXXY4DO1vaa0Opq71HQ3O6k6vUBRIDAPopKsreVYEC7IjbLkYvVFs0PeO4e7OZTesquq8OXraVSZH2e3xAmmqMeOCDJFUdA1m96RI0szSfnSAe2C7Gkh7bypOKCmpcX16FQQiWvICqdahbCZjq8nO3Zd7ccFu1PKaGubssNK3LFamiahCyoCJXWWT0XIy1hev6XPDcQmSCpxl0kQwPgrGRfdLHZp2KTNfkZJFckw42GlXH1262RdB2rEIdfxfOcTMhJSwqid8tH1elamuk36HFoR6aMeXOmuBcDbgJj6eZQovgkuTjwd4XbnQa1051CTvEFB390mc0BPONQxUFKN30DOph0PDZtdGOGTdI9ay8r0SPdXzEvDICSXWJGdp1GEdiKgBqfHaR5gSbgppNLKov4fXwg4Qpo3v9GrAqSmZ6lzohcMOPtRPC26FDLWkdAYZwdNt29NP6XzPbEOtsxs9QsBbXPVI4uIyCBArOvgpqwsQZ7yby0LBtgn9MS7wNv8s1XUpjMBicS01mf7AHQOeQn80cNINFovpuAnMzTVxQOzch3wAoQ5Kpxucun8JGbiQCpE8LXXb8YKikigoyYRyMRoVEqz6KlStLhtWggfkfarJc60INVFCZZlyw9eL5ijlhDM4ycz5QN53kwlcvVc4wmf8rDvWbOYeSjktbuV8aKaRGcixMvHKvJeA3slVGJT1HTB5Yp1Rcqo62KbwGzu4Bted2w9PPTzVHfh42AKqjGeEbI1HQXlGvmDu4oxHEXRs7j1zt7CI29Zam31Lqi2V8vVmbDmWdgnlHDAchoNDaIQWtq3t5Aj0eEWHmPbOF8qqMT1ylaemlMXyrBaOkeO1AAP9pY1ITFQecyuCStDwrQXF0vKERCCGmwi68ZV3C3uYvpA5nZgxA9ob2hrlxIFcW4J6ymIH0rHINUQeOj2sSB47xUZRGGrOzRRrIEnORlcoQ0dqJPrCUMhro8GRD3S9NMLc9gSjmSPp0RJzOCYWGt17M6muNepXiwulhzFKeNIv08s8VWinl3YEyWXSOs1qhVvqBAslsK7wDlqG6ulCtDtSVGOSETSZFWrEeMaPCWanAh12bxGkbOFxDt3aq1jc6q2fqrqvqLc4O0wouugWuxBA9U1YJgjPMBMnfHgUqJ3goYnXDPqXhktEBMGm1cunhotxhvITiom8dQAtCfwy}
test ncad-2.7 {decryptd long string} {
web::decryptd XDZuRDLA6ByKztGaqIUXOwKYQNShjVmulMJC9xJ5sA52R7KsqmlK9bP6HAQckLg9BoVEmcyvqIUpKzRaHlfc2HfoZfovAhOpHlxalsrwrRiATLH9FE0qE7LKJ4b8tMP52w7YQazn9bJMT0D4jGhCM8HfcwqUjZrronssci5K6Akv4kAjSL1OJ1gWjs59lnqOZmfpWY0QtwFBTeJgQ6ULwfxqGapFGmKK6UX0y6GunKjQnUD8HOcVCd5dpScpoton4WpdZRX1nd1YmlkZ41lZaNJXgLCsFDYUCBIn01jHiHRKT2ZjFeX860chWTz6HUWqg7WS8xw5F6VhqArUBjpLsuZGPpm4mSeIIolVni2lhMTBwzOIWOOSynZxzomu4mfCaNkRAUdkynUvNQcFPGFKFIXPhqkjocMQnq2B9SxqaMNKJYhQH4RaVHbL6MFAXBMsoifCzPBqzq4E6RkBBmR8eSmha0ATwZz6lDcCcqEM7CMwBvcqJalbm0zxtBRBVE9AHzkrGANLLPv9vJL64CMZSzNoBsbz6dq0fDe1B2BYVkeBQEWdXgodNVs2EY6FM0OvcT7SL1eSdkvxXXY4DO1vaa0Opq71HQ3O6k6vUBRIDAPopKsreVYEC7IjbLkYvVFs0PeO4e7OZTesquq8OXraVSZH2e3xAmmqMeOCDJFUdA1m96RI0szSfnSAe2C7Gkh7bypOKCmpcX16FQQiWvICqdahbCZjq8nO3Zd7ccFu1PKaGubssNK3LFamiahCyoCJXWWT0XIy1hev6XPDcQmSCpxl0kQwPgrGRfdLHZp2KTNfkZJFckw42GlXH1262RdB2rEIdfxfOcTMhJSwqid8tH1elamuk36HFoR6aMeXOmuBcDbgJj6eZQovgkuTjwd4XbnQa1051CTvEFB390mc0BPONQxUFKN30DOph0PDZtdGOGTdI9ay8r0SPdXzEvDICSXWJGdp1GEdiKgBqfHaR5gSbgppNLKov4fXwg4Qpo3v9GrAqSmZ6lzohcMOPtRPC26FDLWkdAYZwdNt29NP6XzPbEOtsxs9QsBbXPVI4uIyCBArOvgpqwsQZ7yby0LBtgn9MS7wNv8s1XUpjMBicS01mf7AHQOeQn80cNINFovpuAnMzTVxQOzch3wAoQ5Kpxucun8JGbiQCpE8LXXb8YKikigoyYRyMRoVEqz6KlStLhtWggfkfarJc60INVFCZZlyw9eL5ijlhDM4ycz5QN53kwlcvVc4wmf8rDvWbOYeSjktbuV8aKaRGcixMvHKvJeA3slVGJT1HTB5Yp1Rcqo62KbwGzu4Bted2w9PPTzVHfh42AKqjGeEbI1HQXlGvmDu4oxHEXRs7j1zt7CI29Zam31Lqi2V8vVmbDmWdgnlHDAchoNDaIQWtq3t5Aj0eEWHmPbOF8qqMT1ylaemlMXyrBaOkeO1AAP9pY1ITFQecyuCStDwrQXF0vKERCCGmwi68ZV3C3uYvpA5nZgxA9ob2hrlxIFcW4J6ymIH0rHINUQeOj2sSB47xUZRGGrOzRRrIEnORlcoQ0dqJPrCUMhro8GRD3S9NMLc9gSjmSPp0RJzOCYWGt17M6muNepXiwulhzFKeNIv08s8VWinl3YEyWXSOs1qhVvqBAslsK7wDlqG6ulCtDtSVGOSETSZFWrEeMaPCWanAh12bxGkbOFxDt3aq1jc6q2fqrqvqLc4O0wouugWuxBA9U1YJgjPMBMnfHgUqJ3goYnXDPqXhktEBMGm1cunhotxhvITiom8dQAtCfwy
} {cmd=test id=0 t=941012649 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZöäüéàèÖÄÜÉÀÈ@@#"*%&+<>-_.,;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZöäüéàèÖÄÜÉÀÈ@@#"*%&+<>-_.,;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZöäüéàèÖÄÜÉÀÈ@@#"*%&+<>-_.,;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZöäüéàèÖÄÜÉÀÈ@@#"*%&+<>-_.,;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZöäüéàèÖÄÜÉÀÈ@@#"*%&+<>-_.,;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZöäüéàèÖÄÜÉÀÈ@@#"*%&+<>-_.,;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZöäüéàèÖÄÜÉÀÈ@@#"*%&+<>-_.,;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZöäüéàèÖÄÜÉÀÈ@@#"*%&+<>-_.,;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZöäüéàèÖÄÜÉÀÈ@@#"*%&+<>-_.,;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZöäüéàèÖÄÜÉÀÈ@@#"*%&+<>-_.,;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZöäüéàèÖÄÜÉÀÈ@@#"*%&+<>-_.,;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZöäüéàèÖÄÜÉÀÈ@@#"*%&+<>-_.,;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZöäüéàèÖÄÜÉÀÈ@@#"*%&+<>-_.,;}
test ncad-2.8 {decryptd empty string} {
web::decryptd "XD"
} {}
test ncad-2.9 {high unicoded} {
set in "\uFF00 \u01FF"
string compare $in [web::decryptd [web::encryptd $in]]
} {0}
test ncad-2.10 {en-/decryptd long string} {
set tmp [string repeat "aäböcü\r" 70000]
string equal [web::decryptd [web::encryptd $tmp]] $tmp
} {1}
# -----------------------------------------------------------------------------
# error signals
# -----------------------------------------------------------------------------
test ncad-3.1 {error signal 1} {
catch {web::decryptd "a"} msg
} {4}
test ncad-3.2 {error signal 2} {
set res [catch {web::decryptd "XDfoo"} msg]
lappend res $msg
} {1 {checksum mismatch}}
# -----------------------------------------------------------------------------
# symmetry
# -----------------------------------------------------------------------------
test ncad-4.1 {symmetry} {
set in [list {"Bildschirm Eizo 19"" "} a üöä [list [list b d] e]]
set res [web::decryptd [web::encryptd $in]]
string equal $in $res
} {1}
# cleanup
::tcltest::cleanupTests