#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include<stdint.h>
static uint8_t *elmf_license_get_string(const uint8_t *cert, uint32_t cert_len, const uint8_t *jwt_lic, uint32_t licence_len)
{
if (!cert || !jwt_lic)
return NULL;
size_t string_size
= licence_len
+ cert_len
+ strlen("-----BEGIN LICENSE-----\n") + strlen("\n-----END LICENSE-----\n");
uint8_t *temp
= (uint8_t *)malloc(string_size
+ 1); if (!temp)
return NULL;
strcat(temp
, "-----BEGIN LICENSE-----\n");
strncat(temp
, jwt_lic
, licence_len
);
strcat(temp
, "\n-----END LICENSE-----\n");
temp[string_size] = '\0';
return temp;
}
int main()
{
char * cert = "cert";
char * jwt = "jwt";
char * s = elmf_license_get_string(cert, sizeof(cert), jwt, sizeof(jwt));
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZTxzdGRpbnQuaD4KCnN0YXRpYyB1aW50OF90ICplbG1mX2xpY2Vuc2VfZ2V0X3N0cmluZyhjb25zdCB1aW50OF90ICpjZXJ0LCB1aW50MzJfdCBjZXJ0X2xlbiwgY29uc3QgdWludDhfdCAqand0X2xpYywgdWludDMyX3QgbGljZW5jZV9sZW4pCnsKICAgIGlmICghY2VydCB8fCAhand0X2xpYykKICAgICAgICByZXR1cm4gTlVMTDsKCiAgICBzaXplX3Qgc3RyaW5nX3NpemUgPSBsaWNlbmNlX2xlbiArIGNlcnRfbGVuICsgc3RybGVuKCItLS0tLUJFR0lOIExJQ0VOU0UtLS0tLVxuIikgKwogICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmxlbigiXG4tLS0tLUVORCBMSUNFTlNFLS0tLS1cbiIpOwoKICAgIHVpbnQ4X3QgKnRlbXAgPSAodWludDhfdCAqKW1hbGxvYyhzdHJpbmdfc2l6ZSArIDEpOwogICAgaWYgKCF0ZW1wKQogICAgICAgIHJldHVybiBOVUxMOwoKICAgIHN0cm5jcHkodGVtcCwgY2VydCwgY2VydF9sZW4pOwoKICAgIHN0cmNhdCh0ZW1wLCAiLS0tLS1CRUdJTiBMSUNFTlNFLS0tLS1cbiIpOwoKICAgIHN0cm5jYXQodGVtcCwgand0X2xpYywgbGljZW5jZV9sZW4pOwoKICAgIHN0cmNhdCh0ZW1wLCAiXG4tLS0tLUVORCBMSUNFTlNFLS0tLS1cbiIpOwoKICAgIHRlbXBbc3RyaW5nX3NpemVdID0gJ1wwJzsKCiAgICByZXR1cm4gdGVtcDsKfQoKaW50IG1haW4oKQp7CiAgICBjaGFyICogY2VydCA9ICJjZXJ0IjsKICAgIGNoYXIgKiBqd3QgPSAiand0IjsKICAgIAogICAgY2hhciAqIHMgPSBlbG1mX2xpY2Vuc2VfZ2V0X3N0cmluZyhjZXJ0LCBzaXplb2YoY2VydCksIGp3dCwgc2l6ZW9mKGp3dCkpOwoKICAgIHJldHVybiAwOwp9