1*cfb92d14SAndroid Build Coastguard Worker /* 2*cfb92d14SAndroid Build Coastguard Worker * Copyright (c) 2018, The OpenThread Authors. 3*cfb92d14SAndroid Build Coastguard Worker * All rights reserved. 4*cfb92d14SAndroid Build Coastguard Worker * 5*cfb92d14SAndroid Build Coastguard Worker * Redistribution and use in source and binary forms, with or without 6*cfb92d14SAndroid Build Coastguard Worker * modification, are permitted provided that the following conditions are met: 7*cfb92d14SAndroid Build Coastguard Worker * 1. Redistributions of source code must retain the above copyright 8*cfb92d14SAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer. 9*cfb92d14SAndroid Build Coastguard Worker * 2. Redistributions in binary form must reproduce the above copyright 10*cfb92d14SAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer in the 11*cfb92d14SAndroid Build Coastguard Worker * documentation and/or other materials provided with the distribution. 12*cfb92d14SAndroid Build Coastguard Worker * 3. Neither the name of the copyright holder nor the 13*cfb92d14SAndroid Build Coastguard Worker * names of its contributors may be used to endorse or promote products 14*cfb92d14SAndroid Build Coastguard Worker * derived from this software without specific prior written permission. 15*cfb92d14SAndroid Build Coastguard Worker * 16*cfb92d14SAndroid Build Coastguard Worker * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17*cfb92d14SAndroid Build Coastguard Worker * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18*cfb92d14SAndroid Build Coastguard Worker * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19*cfb92d14SAndroid Build Coastguard Worker * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 20*cfb92d14SAndroid Build Coastguard Worker * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21*cfb92d14SAndroid Build Coastguard Worker * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22*cfb92d14SAndroid Build Coastguard Worker * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23*cfb92d14SAndroid Build Coastguard Worker * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24*cfb92d14SAndroid Build Coastguard Worker * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25*cfb92d14SAndroid Build Coastguard Worker * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26*cfb92d14SAndroid Build Coastguard Worker * POSSIBILITY OF SUCH DAMAGE. 27*cfb92d14SAndroid Build Coastguard Worker */ 28*cfb92d14SAndroid Build Coastguard Worker 29*cfb92d14SAndroid Build Coastguard Worker /** 30*cfb92d14SAndroid Build Coastguard Worker * @file 31*cfb92d14SAndroid Build Coastguard Worker * @brief 32*cfb92d14SAndroid Build Coastguard Worker * This file contains the X.509 certificate and private key for Application 33*cfb92d14SAndroid Build Coastguard Worker * CoAP Secure use with cipher suite ECDHE_ECDSA_WITH_AES_128_CCM8. 34*cfb92d14SAndroid Build Coastguard Worker */ 35*cfb92d14SAndroid Build Coastguard Worker 36*cfb92d14SAndroid Build Coastguard Worker #ifndef SRC_CLI_X509_CERT_KEY_HPP_ 37*cfb92d14SAndroid Build Coastguard Worker #define SRC_CLI_X509_CERT_KEY_HPP_ 38*cfb92d14SAndroid Build Coastguard Worker 39*cfb92d14SAndroid Build Coastguard Worker #ifdef __cplusplus 40*cfb92d14SAndroid Build Coastguard Worker extern "C" { 41*cfb92d14SAndroid Build Coastguard Worker #endif 42*cfb92d14SAndroid Build Coastguard Worker 43*cfb92d14SAndroid Build Coastguard Worker #if OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE 44*cfb92d14SAndroid Build Coastguard Worker #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) 45*cfb92d14SAndroid Build Coastguard Worker 46*cfb92d14SAndroid Build Coastguard Worker /**SERVER 47*cfb92d14SAndroid Build Coastguard Worker * Generate your own private key and certificate using openssl. 48*cfb92d14SAndroid Build Coastguard Worker * 49*cfb92d14SAndroid Build Coastguard Worker * 1. Generate a EC (Elliptic Curve) Private Key. 50*cfb92d14SAndroid Build Coastguard Worker * 'openssl ecparam -genkey -out myECKey.pem -name prime256v1 -noout' 51*cfb92d14SAndroid Build Coastguard Worker * 2. Generate a .X509 Certificate (Contains Public Key). 52*cfb92d14SAndroid Build Coastguard Worker * 'openssl req -x509 -new -key myECKey.pem -out myX509Cert.pem' 53*cfb92d14SAndroid Build Coastguard Worker */ 54*cfb92d14SAndroid Build Coastguard Worker 55*cfb92d14SAndroid Build Coastguard Worker /** 56*cfb92d14SAndroid Build Coastguard Worker * place your X.509 certificate (PEM format) for ssl session 57*cfb92d14SAndroid Build Coastguard Worker * with ECDHE_ECDSA_WITH_AES_128_CCM_8 here. 58*cfb92d14SAndroid Build Coastguard Worker */ 59*cfb92d14SAndroid Build Coastguard Worker #define OT_CLI_COAPS_X509_CERT \ 60*cfb92d14SAndroid Build Coastguard Worker "-----BEGIN CERTIFICATE-----\r\n" \ 61*cfb92d14SAndroid Build Coastguard Worker "MIIBrTCCAVICBgDRArfDJTAKBggqhkjOPQQDAjBcMQswCQYDVQQGEwJaWTESMBAG\r\n" \ 62*cfb92d14SAndroid Build Coastguard Worker "A1UECAwJWW91clN0YXRlMRAwDgYDVQQKDAdZb3VyT3JnMRQwEgYDVQQLDAtZb3Vy\r\n" \ 63*cfb92d14SAndroid Build Coastguard Worker "T3JnVW5pdDERMA8GA1UEAwwIVmVuZG9yQ0EwIBcNMTgwNzEzMTIzNzA3WhgPMjI5\r\n" \ 64*cfb92d14SAndroid Build Coastguard Worker "MjA0MjYxMjM3MDdaMGExCzAJBgNVBAYTAlpZMRIwEAYDVQQIDAlZb3VyU3RhdGUx\r\n" \ 65*cfb92d14SAndroid Build Coastguard Worker "EDAOBgNVBAoMB1lvdXJPcmcxFDASBgNVBAsMC1lvdXJPcmdVbml0MRYwFAYDVQQD\r\n" \ 66*cfb92d14SAndroid Build Coastguard Worker "DA1QWEMzLkU3NS0xMDBBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIUtlV99w\r\n" \ 67*cfb92d14SAndroid Build Coastguard Worker "OggiASflg6CVsGMzXMXYrNgQ1piLIybCkrq+YoqJ3mwcbJHWlvxGPxNIQw6i8kzK\r\n" \ 68*cfb92d14SAndroid Build Coastguard Worker "bkC642ZWgBT5MzAKBggqhkjOPQQDAgNJADBGAiEA/1yk69A+37kLBvdOWPDRXGwe\r\n" \ 69*cfb92d14SAndroid Build Coastguard Worker "0AoICTGaLqzB3cF5mtACIQC28WwmzHb5gqe3nOPAM73py1v17EXZj07PU89BAEcb\r\n" \ 70*cfb92d14SAndroid Build Coastguard Worker "yg==\r\n" \ 71*cfb92d14SAndroid Build Coastguard Worker "-----END CERTIFICATE-----\r\n" 72*cfb92d14SAndroid Build Coastguard Worker 73*cfb92d14SAndroid Build Coastguard Worker /** 74*cfb92d14SAndroid Build Coastguard Worker * place your private key (PEM format) for ssl session 75*cfb92d14SAndroid Build Coastguard Worker * with ECDHE_ECDSA_WITH_AES_128_CCM_8 here. 76*cfb92d14SAndroid Build Coastguard Worker */ 77*cfb92d14SAndroid Build Coastguard Worker #define OT_CLI_COAPS_PRIV_KEY \ 78*cfb92d14SAndroid Build Coastguard Worker "-----BEGIN EC PRIVATE KEY-----\r\n" \ 79*cfb92d14SAndroid Build Coastguard Worker "MHcCAQEEIFYQh2R7M48qOHePw+VE4b034UlZmWWC/iNAK34sQbucoAoGCCqGSM49\r\n" \ 80*cfb92d14SAndroid Build Coastguard Worker "AwEHoUQDQgAEIUtlV99wOggiASflg6CVsGMzXMXYrNgQ1piLIybCkrq+YoqJ3mwc\r\n" \ 81*cfb92d14SAndroid Build Coastguard Worker "bJHWlvxGPxNIQw6i8kzKbkC642ZWgBT5Mw==\r\n" \ 82*cfb92d14SAndroid Build Coastguard Worker "-----END EC PRIVATE KEY-----\r\n" 83*cfb92d14SAndroid Build Coastguard Worker 84*cfb92d14SAndroid Build Coastguard Worker /** 85*cfb92d14SAndroid Build Coastguard Worker * Place peers CA certificate (PEM format) here. 86*cfb92d14SAndroid Build Coastguard Worker * It's necessary to validate the peers certificate. If you haven't a 87*cfb92d14SAndroid Build Coastguard Worker * CA certificate, you must run the coaps without checking certificate. 88*cfb92d14SAndroid Build Coastguard Worker */ 89*cfb92d14SAndroid Build Coastguard Worker #define OT_CLI_COAPS_TRUSTED_ROOT_CERTIFICATE \ 90*cfb92d14SAndroid Build Coastguard Worker "-----BEGIN CERTIFICATE-----\r\n" \ 91*cfb92d14SAndroid Build Coastguard Worker "MIICDzCCAbWgAwIBAgIESZYC0jAKBggqhkjOPQQDAjBcMQswCQYDVQQGEwJaWTES\r\n" \ 92*cfb92d14SAndroid Build Coastguard Worker "MBAGA1UECAwJWW91clN0YXRlMRAwDgYDVQQKDAdZb3VyT3JnMRQwEgYDVQQLDAtZ\r\n" \ 93*cfb92d14SAndroid Build Coastguard Worker "b3VyT3JnVW5pdDERMA8GA1UEAwwIVmVuZG9yQ0EwIBcNMTgwNzEzMTE1NjA5WhgP\r\n" \ 94*cfb92d14SAndroid Build Coastguard Worker "MjI5MjA0MjYxMTU2MDlaMFwxCzAJBgNVBAYTAlpZMRIwEAYDVQQIDAlZb3VyU3Rh\r\n" \ 95*cfb92d14SAndroid Build Coastguard Worker "dGUxEDAOBgNVBAoMB1lvdXJPcmcxFDASBgNVBAsMC1lvdXJPcmdVbml0MREwDwYD\r\n" \ 96*cfb92d14SAndroid Build Coastguard Worker "VQQDDAhWZW5kb3JDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGAAuYcBIgP0\r\n" \ 97*cfb92d14SAndroid Build Coastguard Worker "fMC1Bd+1nAH5S1goR0TaDAIadK4hULQr5LwziuDk9XTQaOTwmWB9iR1eiHC6RY8W\r\n" \ 98*cfb92d14SAndroid Build Coastguard Worker "wyrGBbnEbzujYzBhMB0GA1UdDgQWBBQ+yCpIszhzbmXe2At1GofREjnBxjAfBgNV\r\n" \ 99*cfb92d14SAndroid Build Coastguard Worker "HSMEGDAWgBQ+yCpIszhzbmXe2At1GofREjnBxjAPBgNVHRMBAf8EBTADAQH/MA4G\r\n" \ 100*cfb92d14SAndroid Build Coastguard Worker "A1UdDwEB/wQEAwIBhjAKBggqhkjOPQQDAgNIADBFAiBW60XgdSRD24rbTgdneS+V\r\n" \ 101*cfb92d14SAndroid Build Coastguard Worker "SHVix8LuXunPYW50LmxbrwIhAOw4gMroRIOS26y0TcND03FnyO3wBNF9MjM0hWKQ\r\n" \ 102*cfb92d14SAndroid Build Coastguard Worker "JXk3\r\n" \ 103*cfb92d14SAndroid Build Coastguard Worker "-----END CERTIFICATE-----\r\n" 104*cfb92d14SAndroid Build Coastguard Worker 105*cfb92d14SAndroid Build Coastguard Worker #endif // MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED 106*cfb92d14SAndroid Build Coastguard Worker #endif // OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE 107*cfb92d14SAndroid Build Coastguard Worker 108*cfb92d14SAndroid Build Coastguard Worker /** 109*cfb92d14SAndroid Build Coastguard Worker * @} 110*cfb92d14SAndroid Build Coastguard Worker * 111*cfb92d14SAndroid Build Coastguard Worker */ 112*cfb92d14SAndroid Build Coastguard Worker 113*cfb92d14SAndroid Build Coastguard Worker #ifdef __cplusplus 114*cfb92d14SAndroid Build Coastguard Worker } // extern "C" 115*cfb92d14SAndroid Build Coastguard Worker #endif 116*cfb92d14SAndroid Build Coastguard Worker 117*cfb92d14SAndroid Build Coastguard Worker #endif /* SRC_CLI_X509_CERT_KEY_HPP_ */ 118