MastersThesis/TIIGER_TLS/PQ_TIIGER_TLS/lib/tls_client_cert.cpp
2024-04-15 11:53:30 +02:00

702 lines
40 KiB
C++

//
// Client Certificate data stored here
// My private key and my certificate
//
#include "tls_certs.h"
// a preferred root CA
// actually root CA of www.bbc.co.uk
// const char *mysupportedca[1]={(char *)"MEwxIDAeBgNVBAsTF0dsb2JhbFNpZ24gUm9vdCBDQSAtIFIzMRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu"};
#if CLIENT_CERT == ECC_SS
// My personal ECDSA private key - Certificate expires Jan 2026
const char *myprivate=(char *)
"-----BEGIN PRIVATE KEY-----\n"
"MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgwmEaEau6Dybv+N5d\n"
"1v+BkVWYQZhNsNu/X8JPZzZgTd6hRANCAAQvn/UmTjXDk41r0ow6+LfsA3qdKV2K\n"
"1eRIv6axrsfEKds9poshRyvEgy4M8WYZlyOOchiVcO2jTyxvH1Xun/WH\n"
"-----END PRIVATE KEY-----\n";
// self-signed cert
const char *mycert=(char *)
"-----BEGIN CERTIFICATE-----\n"
"MIICdDCCAhmgAwIBAgIUPDaj+Hv0/zO5MmUpKn2EvnrRJrEwCgYIKoZIzj0EAwIw\n"
"gY4xCzAJBgNVBAYTAklFMRAwDgYDVQQIDAdJcmVsYW5kMQ8wDQYDVQQHDAZEdWJs\n"
"aW4xDzANBgNVBAoMBlNoYW11czERMA8GA1UECwwIUmVzZWFyY2gxEzARBgNVBAMM\n"
"Ck1pa2UgU2NvdHQxIzAhBgkqhkiG9w0BCQEWFG1pY2hhZWwuc2NvdHRAdGlpLmFl\n"
"MB4XDTIzMDQyNjE4MDMwNloXDTI2MDEyMDE4MDMwNlowgY4xCzAJBgNVBAYTAklF\n"
"MRAwDgYDVQQIDAdJcmVsYW5kMQ8wDQYDVQQHDAZEdWJsaW4xDzANBgNVBAoMBlNo\n"
"YW11czERMA8GA1UECwwIUmVzZWFyY2gxEzARBgNVBAMMCk1pa2UgU2NvdHQxIzAh\n"
"BgkqhkiG9w0BCQEWFG1pY2hhZWwuc2NvdHRAdGlpLmFlMFkwEwYHKoZIzj0CAQYI\n"
"KoZIzj0DAQcDQgAEL5/1Jk41w5ONa9KMOvi37AN6nSlditXkSL+msa7HxCnbPaaL\n"
"IUcrxIMuDPFmGZcjjnIYlXDto08sbx9V7p/1h6NTMFEwHQYDVR0OBBYEFDOMT9fP\n"
"R8x88EC9TzUeTZ8Af4o7MB8GA1UdIwQYMBaAFDOMT9fPR8x88EC9TzUeTZ8Af4o7\n"
"MA8GA1UdEwEB/wQFMAMBAf8wCgYIKoZIzj0EAwIDSQAwRgIhAMjslzs/qSlwxY5q\n"
"PIj1zkn3Z7bknRV3ICsVzl9hhGJBAiEAkhUnhBuPHgTuGJ3c1xGIIEjNDKvW7Fhc\n"
"94BzAlOIACk=\n"
"-----END CERTIFICATE-----\n";
// Report signature requirements for our certificate chain
int getSigRequirements(int *sigReqs) {
sigReqs[0]=ECDSA_SECP256R1_SHA256;
return 1;
}
#endif
#if CLIENT_CERT == EDD_SS
// My personal EDDSA private key - Certificate expires Jan 2026
const char *myprivate=(char *)
"-----BEGIN PRIVATE KEY-----\n"
"MC4CAQAwBQYDK2VwBCIEIHlr6fjIis7VBPeGoP78bBXunfGqRNfv2PM6B/GurYTV\n"
"-----END PRIVATE KEY-----\n";
// self-signed cert
const char *mycert=(char *)
"-----BEGIN CERTIFICATE-----\n"
"MIICMzCCAeWgAwIBAgIUBRZr5MpC58wQdpEZdnwSy43EhS0wBQYDK2VwMIGOMQsw\n"
"CQYDVQQGEwJJRTEQMA4GA1UECAwHSXJlbGFuZDEPMA0GA1UEBwwGRHVibGluMQ8w\n"
"DQYDVQQKDAZTaGFtdXMxETAPBgNVBAsMCFJlc2VhcmNoMRMwEQYDVQQDDApNaWtl\n"
"IFNjb3R0MSMwIQYJKoZIhvcNAQkBFhRtaWNoYWVsLnNjb3R0QHRpaS5hZTAeFw0y\n"
"MzA1MDIxNDMzMDVaFw0yNjAxMjYxNDMzMDVaMIGOMQswCQYDVQQGEwJJRTEQMA4G\n"
"A1UECAwHSXJlbGFuZDEPMA0GA1UEBwwGRHVibGluMQ8wDQYDVQQKDAZTaGFtdXMx\n"
"ETAPBgNVBAsMCFJlc2VhcmNoMRMwEQYDVQQDDApNaWtlIFNjb3R0MSMwIQYJKoZI\n"
"hvcNAQkBFhRtaWNoYWVsLnNjb3R0QHRpaS5hZTAqMAUGAytlcAMhALvif4QmTzbS\n"
"RuZAB6zRDtIcCOL5dJf1IP+7TQRlZ1I/o1MwUTAdBgNVHQ4EFgQUC6drttANglSF\n"
"PbodPcsgxasZ5TYwHwYDVR0jBBgwFoAUC6drttANglSFPbodPcsgxasZ5TYwDwYD\n"
"VR0TAQH/BAUwAwEB/zAFBgMrZXADQQAx2L90LWfhs2LJG5xcMyFB0YMG7ebbapbL\n"
"2ij1QxL+kyyx5x/7lTJZZin8I036tLR739JOW05uwtjq+im49QQE\n"
"-----END CERTIFICATE-----\n";
// Report signature requirements for our certificate chain
int getSigRequirements(int *sigReqs) {
sigReqs[0]=ED25519;
return 1;
}
#endif
#if CLIENT_CERT == HW_1
// My first Arduino Nano RP2040 self-signed Cert. Private key is on the board slot 0. Expires November 2026
const char *myprivate=NULL;
const char *mycert=(char *)
"-----BEGIN CERTIFICATE-----\n"
"MIIBKzCB0aADAgECAgEBMAoGCCqGSM49BAMCMB0xGzAZBgNVBAMTEjAxMjM0NjI0QjIwMjYwRDdF\n"
"RTAeFw0yMTExMTgxMTAwMDBaFw0yNjExMTgxMTAwMDBaMB0xGzAZBgNVBAMTEjAxMjM0NjI0QjIw\n"
"MjYwRDdFRTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDOFj/SnArwqM15cZs/bXppfTuAxgMzB\n"
"N3LS48xHSqpLhHlVnvOvWqyhE8v+ZX4Jzlo7Z9LGOG537EeldBeGjYijAjAAMAoGCCqGSM49BAMC\n"
"A0kAMEYCIQC9O1l85YX1+9vZ0t/SHQ3zFH5e7Vc8XtrZ+mTtMc5riwIhAL/SektrG3C0JwII0VV5\n"
"pSR9RRnuwo810km81P4S56/m\n"
"-----END CERTIFICATE-----\n";
// Report signature requirements for our certificate chain
int getSigRequirements(int *sigReqs) {
sigReqs[0]=ECDSA_SECP256R1_SHA256;
return 1;
}
#endif
#if CLIENT_CERT == HW_2
// My second Arduino Nano RP2040 self-signed Cert. Private key is on the board slot 0. Expires December 2026
const char *myprivate=NULL;
const char *mycert=(char *)
"-----BEGIN CERTIFICATE-----\n"
"MIIBKzCB0aADAgECAgEBMAoGCCqGSM49BAMCMB0xGzAZBgNVBAMTEjAxMjM2RDlBNkNDRUQ5RUNF\n"
"RTAeFw0yMTEyMjgxMjAwMDBaFw0yNjEyMjgxMjAwMDBaMB0xGzAZBgNVBAMTEjAxMjM2RDlBNkND\n"
"RUQ5RUNFRTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABBxL51SsKUIJ6Akw2IMsn3PMa5tm8kRT\n"
"NDLBHfvIPZh05hoVnR3LO4+Ho91dMbN38tVM71opoTzPtIWrj5L6WI6jAjAAMAoGCCqGSM49BAMC\n"
"A0kAMEYCIQDgqosqLRntTyehtDCuWcY6WP41sfwx1k78W6EkLpoDyQIhAPzxQawMjI9mLeePF6Kk\n"
"BzPRSurX7+nLFDC6u3pfmEY8\n"
"-----END CERTIFICATE-----\n";
// Report signature requirements for our certificate chain
int getSigRequirements(int *sigReqs) {
sigReqs[0]=ECDSA_SECP256R1_SHA256;
return 1;
}
#endif
/*
// My Arduino Nano 33 IoT self-signed Cert. Private key is on the board slot 0. Expires July 2031
const char *myprivate=NULL;
const char *mycert=(char *)
"-----BEGIN CERTIFICATE-----\n"
"MIIBKjCB0aADAgECAgEBMAoGCCqGSM49BAMCMB0xGzAZBgNVBAMTEjAxMjNBMDUz\n"
"MEQ0RkU1RUVFRTAeFw0yMTA3MDQxNTAwMDBaFw0zMTA3MDQxNTAwMDBaMB0xGzAZ\n"
"BgNVBAMTEjAxMjNBMDUzMEQ0RkU1RUVFRTBZMBMGByqGSM49AgEGCCqGSM49AwEH\n"
"A0IABL8xBsAdr4E1MZMoQeA6hmklaiidF8gpgZWmRkSfIIyHwMup/wsz4eTGAB5J\n"
"IhLI/gFGVjsAU+WK7ulsW5YgxCqjAjAAMAoGCCqGSM49BAMCA0gAMEUCIQDYWgeH\n"
"TF7AcJH+3nr7VQo8acgoyhlPnR62xwjj0AsUcwIgQ9qgNjVtZgoZC5+fTpPyG7dt\n"
"1YI/aNe4SDOv0a2jtmc=\n"
"-----END CERTIFICATE-----\n";
*/
#if CLIENT_CERT == RSA_SS
// My personal private key RSA 2048 bits - expires October 2025
const char *myprivate=(char *)
"-----BEGIN PRIVATE KEY-----\n"
"MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDPopFHQN4sWfEO\n"
"fwKMqZAYOZCbpS13lZTYGlIsDOe4Ak3ZoKpkQw/evePpmfRJt3c76m57c9CM53z0\n"
"P0P820IOahlzU+02WcAfgDCBYrCmbKwm2H5HhylBiHF5AlvgoOf/J2xXadK6Afll\n"
"7+gCEZTfBpbfqX2uPO8zLzzrRRVxi8NMky3hVtjoZMtfn9yshLe2Tb9UfZjXMe60\n"
"u4Zc9+azAA3QBilUWtSAFI461svZzSQvkZs5n14hcbTqzNBMR4qQXBZtqq/SDYQs\n"
"p5jqFVmDEQOSTFndwIBEJ+g7vBAberjeh9R+bAHftHAGkMvmrqHLMkD5qAp1D1bc\n"
"8l+3i8etAgMBAAECggEACxUYP/9cXG2oiieJUUyznjdkWopkdN+NBEPTYvqFW7Lz\n"
"yMvkjFlv/WmRQqSu/0hFmvMWVoyF8x9f8gF2dYaWbgKHvTobjS0ZLhU/gYhs+VUP\n"
"kzs28kZqk07fD6BqmwC7oUjPZZMGZls4npJBheq+UXEemG2JgcVK1yaMT9puHJNK\n"
"dKqP4i37KSKzXmhWTptCrk7cOXZYYFzhKm7xbG+wWqPpVhVbJIAMEvA4PBOMY2f5\n"
"M+OXF3W82nl6hRTHEUUl26NkkKrzFHHkLbTZsBocnpy42tIImOCHPvlf6AJqEO6Y\n"
"mp47sCCg5N3AE8Ztg2EF+EAwCDNEZf+df66lLzztgQKBgQD6qgOluasejwJLzmOp\n"
"E6iI4YgPkEG+8HIquJn3EtmVaOWl2w0f5g6PpEjMum8nqyb+qBEgRiV7FYy+KyCv\n"
"c82/jPyN7wtvUZpjBmDEX3mHMvlFFvd1u0/W5AroH8JnHMNRb5cTwJPVNFp5iL/T\n"
"ipgSuRGrvnx0jgT8t5MQ1yICkQKBgQDUDhFSPJyNxWpdh022rMxH5FIphbFATt9E\n"
"/I/uxIxUVtFelvP4dmhUcq5laeE9gegdV7o5cnbKS2T22qffaj5uTcicivPfNeBr\n"
"+UQX8rEjfq+25278zecQv6WlHNR6Duo6aLtOQR1VGrD7y6XX4T62NF2+oBHtVrgh\n"
"HQTJ1d3JXQKBgQDaWT7UHefxtqFJZ39oyLcGhW8AH6klqk3I6QU1NDZU8AsbbrUA\n"
"FGaauYCw1bX92Bkfu0cv1erQTPVMskTGkRmowic9e/15+puBpwykAobaPozkohzt\n"
"cT0a84qMqR2utF9vkMUJb7dXAUPOmlB+9TuDE7NQ552B6jRt73ssMDpwAQKBgF7F\n"
"ssQYRret5W3LjNX5wIrY5keccq2VEoAYiJNj0HvZGVW3DW6cLOChKIQ2n+4HYx/K\n"
"F3aZS7H5pDQXYTOenixaIzCjgX7e62AWVXKGiticRBfws0/VDlIT9QooKmYqyFA2\n"
"go/k1iE0/qhqScKD7q0sFkGd9KUoPr6942f5Z1gZAoGBALbA84ln9+6WilePWd56\n"
"9Stjm1hFbMvxH4GfFRWYyyKLI2/xRhF/botoOw9s5KaWv515ENphKjkSlOe/2ymm\n"
"2TmDZxokL5ZtxJrUzYOGA1Y1rfFspquDiiMSV/nk4VBucNHXk855l/x1S8DeR2K2\n"
"lYtWM/F1mJ0keAIM9bnn1iII\n"
"-----END PRIVATE KEY-----\n";
// A chain of certificates - just one self-signed here
const char *mycert=(char *)
"-----BEGIN CERTIFICATE-----\n"
"MIIEJzCCAw+gAwIBAgIUT1xD+P/lcf5CVT4nEnjkDHCx2BYwDQYJKoZIhvcNAQEL\n"
"BQAwgaIxCzAJBgNVBAYTAklFMQ8wDQYDVQQIDAZVbHN0ZXIxFzAVBgNVBAcMDkJh\n"
"bGx5amFtZXNkdWZmMRgwFgYDVQQKDA9TaGFtdXMgU29mdHdhcmUxETAPBgNVBAsM\n"
"CFJlc2VhcmNoMRYwFAYDVQQDDA1NaWNoYWVsIFNjb3R0MSQwIgYJKoZIhvcNAQkB\n"
"FhVtaWtlLnNjb3R0QG1pcmFjbC5jb20wHhcNMjMwMTA1MDU1MDU2WhcNMjUxMDAx\n"
"MDU1MDU2WjCBojELMAkGA1UEBhMCSUUxDzANBgNVBAgMBlVsc3RlcjEXMBUGA1UE\n"
"BwwOQmFsbHlqYW1lc2R1ZmYxGDAWBgNVBAoMD1NoYW11cyBTb2Z0d2FyZTERMA8G\n"
"A1UECwwIUmVzZWFyY2gxFjAUBgNVBAMMDU1pY2hhZWwgU2NvdHQxJDAiBgkqhkiG\n"
"9w0BCQEWFW1pa2Uuc2NvdHRAbWlyYWNsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQAD\n"
"ggEPADCCAQoCggEBAM+ikUdA3ixZ8Q5/AoypkBg5kJulLXeVlNgaUiwM57gCTdmg\n"
"qmRDD9694+mZ9Em3dzvqbntz0IznfPQ/Q/zbQg5qGXNT7TZZwB+AMIFisKZsrCbY\n"
"fkeHKUGIcXkCW+Cg5/8nbFdp0roB+WXv6AIRlN8Glt+pfa487zMvPOtFFXGLw0yT\n"
"LeFW2Ohky1+f3KyEt7ZNv1R9mNcx7rS7hlz35rMADdAGKVRa1IAUjjrWy9nNJC+R\n"
"mzmfXiFxtOrM0ExHipBcFm2qr9INhCynmOoVWYMRA5JMWd3AgEQn6Du8EBt6uN6H\n"
"1H5sAd+0cAaQy+auocsyQPmoCnUPVtzyX7eLx60CAwEAAaNTMFEwHQYDVR0OBBYE\n"
"FC4O3mIGz/e49iRpegbDKk+Dmp9tMB8GA1UdIwQYMBaAFC4O3mIGz/e49iRpegbD\n"
"Kk+Dmp9tMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBACyDnPof\n"
"l/BFzmLTssYJ0tyH0vDYK2Q/vvaz59DmBxDPxIlk/mR7AZILxH1gIy82DYBL/4Qg\n"
"N29yI7zQlpIrygE9z5oKzeUwj9oqzw/la2D9uLegs9X6eYuTUSNGH2uxWmtNnfku\n"
"ZPNpbeKtKD+IibtTRBeMsygZftmAzRmGkO74VIt/mmr6A2dU/wkpywLLmeiD8Bnu\n"
"5Lk4x+HPjtgVYR7D1FXOU6+q5zS2SrCj3yTNxw5dBq2WfQnnFZCFWkgxZ9hBDQ9P\n"
"+5XjRXUpUH2VbfSNBjktYJKZpuXWj4yVChzPtYsGJfuqpMAoWziZNHNHP1RCyzZw\n"
"Y3ErhHcLL7Z4dRk=\n"
"-----END CERTIFICATE-----\n";
// Report signature requirements for our certificate chain
int getSigRequirements(int *sigReqs) {
//sigReqs[0]=RSA_PSS_RSAE_SHA256;
sigReqs[0]=RSA_PKCS1_SHA256;
return 1;
}
#endif
#if CLIENT_CERT == HYB_SS
const char *myprivate=(char *)
"-----BEGIN PRIVATE KEY-----\n"
"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\n"
"u6taoqDv\n"
"-----END PRIVATE KEY-----\n";
// A chain of certificates - just one self-signed here. Expires August 2023
const char *mycert=(char *)
"-----BEGIN CERTIFICATE-----\n"
"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\n"
"AAAAAAAAAAAADRcjJw==\n"
"-----END CERTIFICATE-----\n";
// Report signature requirements for our certificate chain
int getSigRequirements(int *sigReqs) {
sigReqs[0]=ECDSA_SECP256R1_SHA256;
sigReqs[1]=DILITHIUM2;
return 2;
}
#endif
#if CLIENT_CERT == DLT_SS
const char *myprivate=(char *)
"-----BEGIN PRIVATE KEY-----\n"
"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\n"
"-----END PRIVATE KEY-----\n";
// A chain of certificates - just one self-signed here. Expires June 2023
const char *mycert=(char *)
"-----BEGIN CERTIFICATE-----\n"
"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\n"
"AAAAAAAECBMbIy41Og==\n"
"-----END CERTIFICATE-----\n";
// Report signature requirements for our certificate chain
int getSigRequirements(int *sigReqs) {
sigReqs[0]=DILITHIUM3;
return 1;
}
#endif