동식 명
Jul 19, 2019
1:01 am

How to use Samsung license?

I got 3 Samsung license keys.
1. KPE Development Limited Development
2. Backwards compatible key Commercial
3. Attestation REST API Key REST API

How do you use these keys? It's likely to be used for different purposes.

First of all, what I tested was I ran a Knox api sample.
Each of the three keys ran the same result.

Results:
"success"
"status error"

What is Status error?

Thank you.

 

삼성 license 사용 방법?

삼성 license key를 3개 받았습니다.

1. KPE Development Limited Development

2. Backwards compatible key Commercial

3. Attestation REST API Key REST API

이 키들을 어떻게 사용하는 지? 각 각 다른 용도로 쓰일 것 같기는 합니다.

일단, 제가 테스트한 것은 knox api 샘플을 실행해 보았습니다.

3개의 키에 대하여 각 각 실행하였어나 모두 똑같은 결과가 나왔습니다.

 

void __license_callback_(int oper, void *cb_data, void *user_data) {

    mdm_license_callback_t *ldata = (mdm_license_callback_t *) cb_data;

    debug("-----");

    if (ldata->license_info != NULL) {

        debug("package = %s", ldata->license_info->pkg);

        debug("status = %s", ldata->license_info->status);

        debug("error code = %d", ldata->license_info->error_code);

        debug("error desc = %s", ldata->license_info->error_desc);

        debug("id = %s", ldata->license_info->id);

    } else {

        warn("ldata is null!");

    }



    switch (oper) {

    case MDM_CB_LICENSE_ACTIVATE:

        debug("MDM_CB_LICENSE_ACTIVATE");

        break;

    case MDM_CB_LICENSE_VALIDATE_RESULT:

        debug("MDM_CB_LICENSE_VALIDATE_RESULT");

        break;

    case MDM_CB_LICENSE_ACTIVATE_KNOX:

        debug("MDM_CB_LICENSE_ACTIVATE_KNOX");

        break;

    case MDM_CB_LICENSE_DEACTIVATE_KNOX:

        debug("MDM_CB_LICENSE_DEACTIVATE_KNOX");

        break;

    case MDM_CB_LICENSE_KNOX_VALIDATE_RESULT:

        debug("MDM_CB_LICENSE_KNOX_VALIDATE_RESULT");

        break;

    default:

        error("-----");

        break;

    }

}

int has_license(key_type type)

{

    debug("----- %d", type);

    char *license_key;

    switch (type) {

    case KEY_KPE:

        license_key = LICENSE_KPE;

        break;

    case KEY_COMMERCIAL:

        license_key = LICENSE_COMMERCIAL;

        break;

    case KEY_REST_API:

        license_key = LICENSE_REST_API;

        break;

    default:

        error("key type do not support");

        return -1;

    }

    // Connect to the MDM

    mdm_get_service();

    // License callback registration.

    mdm_register_client_callback(MDM_LICENSE_CB, __license_callback_, NULL, NULL);

    mdm_data_t *lp_data = mdm_activate_license(PACKAGE, license_key);

    if (lp_data != NULL) {

        debug("success!");

        if (lp_data->ret == MDM_RESULT_SUCCESS) {

            debug("Status OK!");

            return 0;

        }

        mdm_free_data(lp_data);

        warn("Status Error!");

        return 1;

    }

    error("Failure");

    return -1;

}
결과:

 "success"

 "status error"

Status error 무었일까요?

감사합니다.