#ifndef __SERVICEKEY_H__
#define __SERVICEKEY_H__

#include <stdint.h>

#include "CommLayerData.h"

int32_t readKeyFile( const char* key_file_path, uint8_t* wrappedKey, uint32_t* wrappedKeyLen );
int32_t writeKeyFile( const char* key_file_path, uint8_t* wrappedKey, uint32_t wrappedKeyLen );

/**
* Request DRK generate a Service key
* Then store encrypted key to /efs/prov_data/sk/sk.dat
*/
int csGenerateServiceKey(uint8_t keyType, const struct KeyInfo *keyInfo, const uint8_t *TID, uint32_t TIDLen);

/**
* Verify Service key from /efs/prov_data/sk/sk.dat
*
*/
int csVerifyServiceKey(uint8_t keyType, const struct KeyInfo *keyInfo);

/**
* read DRK Cert UID
*
*/
int csReadKeyUID(uint8_t *out, uint32_t *outLen);

#endif