/* =============================================================================
 * server_ca.c - 서버(Cafe24) 루트 CA 인증서 (PEM, flash 임베드)
 *
 *  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! PLACEHOLDER !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 *  아래 인증서는 *자리표시자(PLACEHOLDER)* 이며 실제 서버 검증에 사용할 수 없다.
 *  배포 전에 반드시 실제 Cafe24 서버의 루트 CA 체인으로 교체해야 한다.
 *
 *  교체 방법(요약, 자세히는 certs/README.md):
 *    1) 서버에서 체인 추출:
 *         openssl s_client -showcerts -connect <host>:443 -servername <host>
 *    2) 루트(필요 시 intermediate + root 를 한 파일에 연결)를 PEM 으로 저장
 *    3) PowerShell 로 이 파일 재생성:
 *         ./certs/gen_ca_header.ps1 -PemPath cafe24_root.pem
 *
 *  동작(fail-closed): 이 자리표시자는 컴파일은 되지만 유효한 X.509 DER 이 아니므로
 *  tls_init() 의 mbedtls_x509_crt_parse() 단계에서 파싱이 실패한다. 그 결과
 *  tls_init() 이 음수를 반환하고 main 이 bsp_fatal() 로 안전 정지(부팅 중단)한다.
 *  즉 자리표시자 상태로는 펌웨어가 애플리케이션까지 도달하지 못한다(데이터 유출 없음).
 *  실제 CA 로 교체하면 정상 부팅 후 핸드셰이크에서 풀 검증이 수행된다.
 *  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 *
 * TODO(hw): 위 절차로 실제 Cafe24 루트 CA 로 교체할 것. (위험 R3)
 * ===========================================================================*/
#include "server_ca.h"

/* -----------------------------------------------------------------------------
 * PLACEHOLDER CA — 실제 인증서가 아님. 반드시 교체할 것.
 *
 * 형식 주의:
 *  - 각 라인 끝에 명시적 "\n" 을 넣는다(PEM 라인 구분자).
 *  - BEGIN/END 마커와 본문 base64 가 모두 있어야 mbedTLS PEM 파서가 인식한다.
 *  - 마지막 라인 뒤 "\n" 까지 포함하고, C 문자열의 종결 NUL 은 LEN 에 반영된다.
 * ---------------------------------------------------------------------------*/
const char SERVER_CA_PEM[] =
    "-----BEGIN CERTIFICATE-----\n"
    "MIIB/zCCAaWgAwIBAgIUUExBQ0VIT0xERVJfRE9fTk9UX1VTRTAKBggqhkjOPQQD\n"
    "AjBFMQswCQYDVQQGEwJYWDEVMBMGA1UEBwwMRGVmYXVsdCBDaXR5MR8wHQYDVQQK\n"
    "DBZQTEFDRUhPTERFUiBDQSAtIEZBS0UwHhcNMjUwMTAxMDAwMDAwWhcNMjYwMTAx\n"
    "MDAwMDAwWjBFMQswCQYDVQQGEwJYWDEVMBMGA1UEBwwMRGVmYXVsdCBDaXR5MR8w\n"
    "HQYDVQQKDBZQTEFDRUhPTERFUiBDQSAtIEZBS0UwWTATBgcqhkjOPQIBBggqhkjO\n"
    "PQMBBwNCAAQEXAMPLEPLACEHOLDERKEYBYTESDONOTUSEINPRODUCTIONXXXXXXXX\n"
    "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo1Mw\n"
    "UTAdBgNVHQ4EFgQUUExBQ0VIT0xERVJfRkFLRV9DQV9YMB8GA1UdIwQYMBaAFFBM\n"
    "QUNFSE9MREVSX0ZBS0VfQ0FfWDAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMC\n"
    "A0gAMEUCIQDPLACEHOLDERSIGNATUREVALUEDONOTTRUSTXXXXXXXXXXXXXXAiEA\n"
    "PLACEHOLDERSIGNATUREVALUEDONOTTRUSTYYYYYYYYYYYYYYYYYYYYYYYYYY=\n"
    "-----END CERTIFICATE-----\n";

/* 길이: sizeof 는 종결 NUL 1바이트를 포함한다(mbedTLS PEM 요구사항). */
const unsigned int SERVER_CA_PEM_LEN = sizeof(SERVER_CA_PEM);
