summaryrefslogtreecommitdiffstats
path: root/checks/genkey1024.test
diff options
context:
space:
mode:
Diffstat (limited to 'checks/genkey1024.test')
-rwxr-xr-xchecks/genkey1024.test122
1 files changed, 79 insertions, 43 deletions
diff --git a/checks/genkey1024.test b/checks/genkey1024.test
index faaea2d1b..ee282b28e 100755
--- a/checks/genkey1024.test
+++ b/checks/genkey1024.test
@@ -2,59 +2,95 @@
. defs.inc || exit 3
-info "This expect script does not yet work"
-info "Please, all those expect gurus, can you help me with it?"
-exit 0
-
expect - <<EOF
-set timeout -1
+#set timeout -1
+set timeout 5
match_max 100000
spawn ../g10/gpg --no-batch --quick-random --homedir . --gen-key
-expect -exact "Please select the algorithm to use:\r
- (1) ElGamal is the suggested one.\r
- (2) DSA can only be used for signatures.\r
-Your selection? (1,2) "
-send -- "1\r"
-expect -exact "1\r
-\r \rAbout to generate a new ElGamal keypair.\r
- minimum keysize is 768 bits\r
- default keysize is 1024 bits\r
+expect {
+ -exact "Please select what kind of key you want:\r
+ (1) DSA and ElGamal (default)\r
+ (2) ElGamal (sign and encrypt)\r
+ (3) ElGamal (encrypt only)\r
+ (4) DSA (sign only)\r
+ (5) ElGamal in a v3 packet\r
+Your selection? " { send -- "1\r" }
+ timeout { exit 1 } }
+expect {
+ -exact "1\r
+\r \rDSA keypair will have 1024 bits.\r
+About to generate a new ELG-E keypair.\r
+ minimum keysize is 768 bits\r
+ default keysize is 1024 bits\r
highest suggested keysize is 2048 bits\r
-What keysize do you want? (1024) "
-send -- "\r"
-expect -exact "\r
-\r \rRequested keysize is 1024 bits\r
-\r
+What keysize do you want? (1024) " { send -- "\r" }
+ timeout { exit 1 } }
+expect {
+ -exact "\r
+\r \rRequested keysize is 1024 bits\r
+Please specify how long the key should be valid.\r
+ 0 = key does not expire\r
+ <n> = key expires in n days\r
+ <n>w = key expires in n weeks\r
+ <n>m = key expires in n months\r
+ <n>y = key expires in n years\r
+Key is valid for? (0) " { send -- "1\r" }
+ timeout { exit 1 } }
+expect {
+ -exact "1\r
+\r \rKey expires at " { }
+ timeout { exit 1 } }
+expect {
+ -re "(.*)\r
+" {}
+ timeout { exit 1 } }
+expect {
+ -exact "Is this correct (y/n)? " { send -- "y\r" }
+ timeout { exit 1 } }
+expect {
+ -exact "y\r
+\r \r\r
You need a User-ID to identify your key; the software constructs the user id\r
from Real Name, Comment and Email Address in this form:\r
- \"Heinrich Heine (Der Dichter) <heinrichh@uni-duesseldorf.de>\"\r
+ \"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>\"\r
\r
-Real name: "
-send -- "Harry H.\r"
-expect -exact "Harry H.\r
-\r \rEmail address: "
-send -- "hh@ddorf.de\r"
-expect -exact "hh@ddorf.de\r
-\r \rComment: "
-send -- "a test\r"
-expect -exact "a test\r
-\r \rYou selected this USER-ID:\r
+Real name: " { send -- "Harry H.\r" }
+ timeout { exit 1 } }
+expect {
+ -exact "Harry H.\r
+\r \rEmail address: " { send -- "hh@ddorf.de\r" }
+ timeout { exit 1 } }
+expect {
+ -exact "hh@ddorf.de\r
+\r \rComment: " { send -- "a test\r" }
+ timeout { exit 1 } }
+expect {
+ -exact "a test\r
+\r \rYou selected this USER-ID:\r
\"Harry H. (a test) <hh@ddorf.de> (INSECURE!)\"\r
\r
-Edit (N)ame, (C)omment, (E)mail or (O)kay? "
-send -- "o\r"
-expect -exact "o\r
-\r \rYou need a Passphrase to protect your secret key.\r
+Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? " { send -- "o\r" }
+ timeout { exit 1 } }
+expect {
+ -exact "o\r
+\r \rYou need a Passphrase to protect your secret key.\r
\r
-Enter pass phrase: "
-send -- "abc\r"
-expect -ex "abc\r\n"
-expect -ex "\r \rRepeat pass phrase:\ "
-send -- "abc\r"
-expect -ex "abc\r\n"
-expect {
- -ex "public and secret key created and signed.\r"
- eof abort
+Enter pass phrase: " { sleep 1; send -- "abc\r" }
+ timeout { exit 1 } }
+expect {
+ -ex "\r \rRepeat pass phrase: " { sleep 1; send -- "abc\r" }
+ timeout { exit 1 } }
+expect {
+ -ex "\r \rWe need to generate a lot of random bytes. It is a good idea to perform\r
+some other action (work in another window, move the mouse, utilize the\r
+network and the disks) during the prime generation; this gives the random\r
+number generator a better chance to gain enough entropy.\r" {}
+ timeout { exit 1 } }
+set timeout 120
+expect {
+ -ex "public and secret key created and signed.\r" { exit 0 }
+ eof { exit 1 }
}
+exit 1
EOF