#include "utils.h"
int decode_asn1_time(const unsigned char *data, size_t len, char *out, size_t out_len) {
if (len < 13 || out_len < 20) return -1;
const char *p = (const char *)data;
if (p[0] != 0x17 && p[0] != 0x18) return -1;
size_t dlen = (unsigned char)p[1];
if (dlen < 13 || dlen > len - 2) return -1;
const char *t = p + 2;
snprintf(out, out_len, "%.4s-%.2s-%.2sT%.2s:%.2s:%.2sZ",
t, t + 4, t + 6, t + 8, t + 10, t + 12);
return 0;
}