#!/usr/bin/perl -w
######################################################################
#
# $Id: test_harness.local,v 1.2 2006/05/30 21:08:29 mavrik Exp $
#
######################################################################

use strict;

######################################################################
#
# GetPlatformName
#
######################################################################

sub GetPlatformName
{
  return "common";
}


######################################################################
#
# ExtractDsaTestCertificate
#
######################################################################

sub ExtractDsaTestCertificate
{
  my ($sFile) = @_;

  if (!open(FH, "> $sFile"))
  {
    return undef;
  }

  print FH <<EOF;
-----BEGIN CERTIFICATE-----
MIIDuzCCA3ugAwIBAgIJANuuT15w+2nFMAkGByqGSM44BAMwXjELMAkGA1UEBhMC
Q0MxCzAJBgNVBAgTAlNUMQowCAYDVQQHEwFMMQowCAYDVQQKEwFPMQswCQYDVQQL
EwJPVTEdMBsGA1UEAxMURFNBIFRlc3QgQ2VydGlmaWNhdGUwHhcNMDYwNTIyMDEw
OTQ2WhcNMTYwNTE5MDEwOTQ2WjBeMQswCQYDVQQGEwJDQzELMAkGA1UECBMCU1Qx
CjAIBgNVBAcTAUwxCjAIBgNVBAoTAU8xCzAJBgNVBAsTAk9VMR0wGwYDVQQDExRE
U0EgVGVzdCBDZXJ0aWZpY2F0ZTCCAbYwggErBgcqhkjOOAQBMIIBHgKBgQDIalME
tNidHDqbLMnNIuo7Ve4WtoqVnVC3k1xYMCgWeZ8mqjVS+ExpD5EP2rOgkjnHos6O
9d80YxMYsO7AdMuC8b7r0JjKgkk3lUrmw/OvdkjxL9VoY2cYOr6DzDcHMFEvs4x4
FJzscseEV7KE7rMfnANOV5rr5cfIGetut90yjwIVANoSuzFMLGLRDWv0/7emdc4j
sxJ/AoGAWmDhjp19cEcw/+jbYbli2D+Pg6sbz6DEH7VRS+YqL2j3Sn1TWCQuf210
VIB/2ZKCNpEfxPFZ++77wzZDovbsFQHE6+DpafNrrto9bpwwcYODmVVL5hkA40VQ
06K8hw0+OU0LjOb9NT4inr8fbkBZSxOMmaGvNDi698eI8XIOJxoDgYQAAoGAN2od
7TfpHYhpUo4wDgh3N4QqHh7Ff7wYud6q/pBCPbyr8paS7lIvC/l5ViUyG40OYDOi
+7M5bOo4e6mQvC6KIQIfPfc0knCc+ndmr2eCUijVQhXpWfV9DgEb1j2FrzKcpAG4
DzzoGHQGrJFCWlBn9zqq6k5ubZRMKIxJ5VPEBxejgcMwgcAwHQYDVR0OBBYEFF/+
Ui5jzrEl2rn+iOykR0tzGH36MIGQBgNVHSMEgYgwgYWAFF/+Ui5jzrEl2rn+iOyk
R0tzGH36oWKkYDBeMQswCQYDVQQGEwJDQzELMAkGA1UECBMCU1QxCjAIBgNVBAcT
AUwxCjAIBgNVBAoTAU8xCzAJBgNVBAsTAk9VMR0wGwYDVQQDExREU0EgVGVzdCBD
ZXJ0aWZpY2F0ZYIJANuuT15w+2nFMAwGA1UdEwQFMAMBAf8wCQYHKoZIzjgEAwMv
ADAsAhQH7t6zcw5wjNPGG8nJZIcJANuaogIUSq9MocrjE5X6zB8wq9DG4UXO2hc=
-----END CERTIFICATE-----
EOF
  close(FH);

  1;
}


######################################################################
#
# ExtractRsaTestCertificate
#
######################################################################

sub ExtractRsaTestCertificate
{
  my ($sFile) = @_;

  if (!open(FH, "> $sFile"))
  {
    return undef;
  }

  print FH <<EOF;
-----BEGIN CERTIFICATE-----
MIIC/jCCAmegAwIBAgIJANAYYYj1r127MA0GCSqGSIb3DQEBBQUAMF4xCzAJBgNV
BAYTAkNDMQswCQYDVQQIEwJTVDEKMAgGA1UEBxMBTDEKMAgGA1UEChMBTzELMAkG
A1UECxMCT1UxHTAbBgNVBAMTFFJTQSBUZXN0IENlcnRpZmljYXRlMB4XDTA2MDUy
MjAxMTEwN1oXDTE2MDUxOTAxMTEwN1owXjELMAkGA1UEBhMCQ0MxCzAJBgNVBAgT
AlNUMQowCAYDVQQHEwFMMQowCAYDVQQKEwFPMQswCQYDVQQLEwJPVTEdMBsGA1UE
AxMUUlNBIFRlc3QgQ2VydGlmaWNhdGUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
AoGBALDnN83ZQG4ALbVBlTwYsDGO4niaV3zsuj5FH5qi9CD0UMBMUAz2fyFD6CHw
TQOzMGlFzn1H8MMWFRSZQSf1AaA7ET+tmlWnoKjx2mrkAkDqplderUyOR2CTuomI
dKGqZyObQ4f10TBJUdZzn0cfxkzdm7g04scGMCY+B/OHBpyJAgMBAAGjgcMwgcAw
HQYDVR0OBBYEFJQnyiRt0GCzkIbjMGY+lT1lkr5WMIGQBgNVHSMEgYgwgYWAFJQn
yiRt0GCzkIbjMGY+lT1lkr5WoWKkYDBeMQswCQYDVQQGEwJDQzELMAkGA1UECBMC
U1QxCjAIBgNVBAcTAUwxCjAIBgNVBAoTAU8xCzAJBgNVBAsTAk9VMR0wGwYDVQQD
ExRSU0EgVGVzdCBDZXJ0aWZpY2F0ZYIJANAYYYj1r127MAwGA1UdEwQFMAMBAf8w
DQYJKoZIhvcNAQEFBQADgYEApDZHzchAfqZs1b53Lhjsv0t45PEpIXpHVXgL4iTr
PlLJ0TFgSDiSvV6NBdSRgG2KZkYjmN0iHJ+pUSwVEFps0aD8iE8kUM/k/CGQnE5E
cym2FthA8C+qN/fdXP8Tj2JNjzf6Nr3Xy+aMavSdynPpnobgclF9JSZ5Bvbtj8fh
BxQ=
-----END CERTIFICATE-----
EOF
  close(FH);

  1;
}


######################################################################
#
# ExtractDsaTestKey
#
######################################################################

sub ExtractDsaTestKey
{
  my ($sFile, $sWithPassphrase) = @_;

  if (!open(FH, "> $sFile"))
  {
    return undef;
  }

  if ($sWithPassphrase)
  {
    print FH <<EOF;
-----BEGIN DSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,46F5A32A96D15FCF

5qEmt2lHvGTyapahY9da5WS6uBHH150aIK+jq1zCSS5pYBQi2jKwNXsmNxFf3n7W
cmmF74mHcKdWUWckpmeYLvSmerUYW9ifUyZr7DRiIB/Q1rv81ZbqpMc6zD5TCSVG
6gSlA1BU9097JaGViBx+01u7XW6RfW3iB8wLeVXLysM0fhfUYQbv+N001Nq6yecF
kjlbwF6tRd6PMeHjg5amlys8jErZfCtXCB8V7IgywEKeDQ/Uv6pE8iiJPIVGDYo9
3Y6epgE9Jai2ibWwbrp5Jcbj1fLiFT8Up1xo6ksXjnb2cFren8iw1ymxdnLW4XRb
A3XWT19yAQBsEbxOyO0qD71K0uJsj636R91nYKqMP1/+9uGE29dPRIc0y8PIkgrq
Wj2XcsnEWmYJgMjcuGU7LE7/tGJXklbLXGIOPA2O9z+k+MMhAmg7Npi1R2HlGnd9
DLEQfQQX/7IFgo4Os2HPxMj53yMxIayJw4ZGBFrggESjyQuDVPCaK2Rf+MgtHUD3
dyUDTjq+u6e33TApB379iaVF9NoK5NC0x5FEduHNpjn+0p4H2jSiC5mTdX7htVty
yP355S1c7jN8IcI2F1l6lw==
-----END DSA PRIVATE KEY-----
EOF
  }
  else
  {
    print FH <<EOF;
-----BEGIN DSA PRIVATE KEY-----
MIIBugIBAAKBgQDIalMEtNidHDqbLMnNIuo7Ve4WtoqVnVC3k1xYMCgWeZ8mqjVS
+ExpD5EP2rOgkjnHos6O9d80YxMYsO7AdMuC8b7r0JjKgkk3lUrmw/OvdkjxL9Vo
Y2cYOr6DzDcHMFEvs4x4FJzscseEV7KE7rMfnANOV5rr5cfIGetut90yjwIVANoS
uzFMLGLRDWv0/7emdc4jsxJ/AoGAWmDhjp19cEcw/+jbYbli2D+Pg6sbz6DEH7VR
S+YqL2j3Sn1TWCQuf210VIB/2ZKCNpEfxPFZ++77wzZDovbsFQHE6+DpafNrrto9
bpwwcYODmVVL5hkA40VQ06K8hw0+OU0LjOb9NT4inr8fbkBZSxOMmaGvNDi698eI
8XIOJxoCgYA3ah3tN+kdiGlSjjAOCHc3hCoeHsV/vBi53qr+kEI9vKvylpLuUi8L
+XlWJTIbjQ5gM6L7szls6jh7qZC8LoohAh899zSScJz6d2avZ4JSKNVCFelZ9X0O
ARvWPYWvMpykAbgPPOgYdAaskUJaUGf3OqrqTm5tlEwojEnlU8QHFwIUbszQBdGH
ljgj6rcX5YANIuDGF3w=
-----END DSA PRIVATE KEY-----
EOF
  }
  close(FH);

  1;
}


######################################################################
#
# ExtractRsaTestKey
#
######################################################################

sub ExtractRsaTestKey
{
  my ($sFile, $sWithPassphrase) = @_;

  if (!open(FH, "> $sFile"))
  {
    return undef;
  }

  if ($sWithPassphrase)
  {
    print FH <<EOF;
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,2F5819981BB04BCA

Zavr8ALEYZn88ZE/mgLDSSs2DUZQBKPs/e/3DxbXFUkbiu/qopCirIUD+ra0PT0j
dWkxUmzFcU+Uq2izVAk03OXXn+2efBkh0diYMV8MbxqptMZg64SZvzq4Wk+XXSs0
9msTnYmGKpWl6Gp26gDb6e2ymhFc6cT2se2Wkc1BtbkrBrJsU+ceQkNo8Gh8eTbc
NBD6pOCHCFUQtX3MF01yiKOnsS9a5FVM5f2WRJxkHgKK580KcPov0Mp7LTrh4/Py
g+bAVwCwvrbOwITK+R+FZXpVFJmEi5xfv8jqJN7hT0uU3CnvT9NPfTmIyxLLQsJw
2NJK1SUYT37PZhG3sZZR771OmjcBHrBNAjYXM2b+fFCE/AFna9ag8z0Jh9QBL65A
C1MMgQVtAbp4BpLgNXTiUCKJ5gNfS6yquMdRbzl8NP+mnXUBPiMbIds53uxIVPRc
z2FcLSCmsY/5AFATNbvazno79xjoAU5T4O0JykKY1FHbeL8LjkqwYk0848Eoe7CT
KM/m+QPqugaxmtdX6NH3CxZ5rsRQhSwxFPuDVoNO17NeEPYK8bOrcWUfLxbXOP/Z
dDXQxfkrM6bxkoPzKwkYlr4rhNgZvfYwT69BbC34RvxkmhKBpyadwkecvgnFHH44
pbWPYeWHKuj9D+nus5h9eapOhkfyd6AfEnRR44WiZB5IQVt9X2/uB276wvz94VHA
4o1j0YvmEpMSEdAxEkAu1yupan8O0iJt/1drYYZo4qfayvqCN9CCZhkazSOoaif8
kG2rDvNlyugMWsYB6Ev+ZsGNinxJkCkwwW+AmTc/4ZPpOBhQyZ0RNQ==
-----END RSA PRIVATE KEY-----
EOF
  }
  else
  {
    print FH <<EOF;
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQCw5zfN2UBuAC21QZU8GLAxjuJ4mld87Lo+RR+aovQg9FDATFAM
9n8hQ+gh8E0DszBpRc59R/DDFhUUmUEn9QGgOxE/rZpVp6Co8dpq5AJA6qZXXq1M
jkdgk7qJiHShqmcjm0OH9dEwSVHWc59HH8ZM3Zu4NOLHBjAmPgfzhwaciQIDAQAB
AoGAM8DhNYq6a7QHq0BtjXBXk5gOr2PP9o83CWKllVLZAw8W1Ls+rBwtIyk/rzYj
AdMZdaLjfwld6WT7c9RGGI94EtDJjcB0GxrxMsEKKgBKYQ49HHR7yVVFFhJiAlpP
NSqF+3ovPKBti5t86mOg8Act94yP7loC0W/c7klWSylZuGUCQQDZXT3I4RAj7LYJ
VuOs/UDpi+aahtEnl90lF3BknaIrSVlqg6IskTW2n226MQyqnkeEn7WSkkwptJ6r
lRX25d6nAkEA0FjfPqAYaQ+40sp+fWuNjhzZFAvOlYF/WoBEHb5pE0T3AuAlPWXK
oArC+jKCSll7EOqqw7uBJBktCosNh03BTwJBAMuDiqK3XvZT3ki2SuugHxPMAjiy
e8gXX14oKPp7wOfIgGjDIKebue/oK8OFwzdIhOu+4TF/usHdtCYwq2UE6scCQC7c
3pIChpsTCzp2i48AYx2lBXrJ0RS1xQSBN1ENZCsOZxUBf77Yp4PqB8MpGz9H8zNx
5SkTgs+wzf3CGy/k4GcCQQC4Ckhufxrikbk5fZuqfQzvyqWhWL2JpioSJb0XklMH
yL+w+S7BfLcd4nZUkaFpshaOdaO1Q7eWM2OgGBl1tWT0
-----END RSA PRIVATE KEY-----
EOF
  }
  close(FH);

  1;
}


######################################################################
#
# GetTestPayload
#
######################################################################

sub GetTestPayload
{
  my ($sKey) = @_;

  my %hPayloads =
  (
    'null_payload' => "",
    'junk_payload' => "junk\n",
    'good_payload_dsa' => "dsa_1024_sig_fvm\n",
    'good_payload_rsa' => "rsa_1024_sig_fvm\n",
  );
  return $hPayloads{$sKey};
}


######################################################################
#
# GetTestSignature
#
######################################################################

sub GetTestSignature
{
  my ($sKey) = @_;

  my %hSignatures =
  (
    'null_signature' => "",
    'junk_signature' => "junk\n",
    'good_signature_rsa' => "kKYtdIKArTB896XLNlRTzK8xDDJsh1EErK+o7V6I0Ad3qE5liazIsS8Qvafni9Z3WpJkHmgHUWJoUkQ4daMk+tOSTb8zUptkzM2TUmtyd41bqsSF1h8fntpjaHyaEiSn/Oh49iMMrzNRQuu89e85Di5+4Mq728y7QLafEhK587g=\n",
    'good_signature_dsa' => "MC0CFBAYRFJEhYRvlzjtVBWxFK+jUCI8AhUAqfC/B1dNum2C53ft6NvoiRbZIR8=\n",
  );
  return $hSignatures{$sKey};
}

1;


syntax highlighted by Code2HTML, v. 0.9.1