#include #include #include #include #include #include "SHSSDK.h" // 사용방법 표시 void PrintUsage(const char* prg) { fprintf( stderr, "\n" ); fprintf( stderr, "Usage: %s [id] [passwd] [service] [auth key] [cert file] [expire time]\n", prg ); fprintf( stderr, "Inputs: \n" ); fprintf( stderr, " id : ID \n" ); fprintf( stderr, " passwd : Password\n" ); fprintf( stderr, " service : Service Name \n" ); fprintf( stderr, " auth key : Service authentication key \n" ); fprintf( stderr, " cert file : authentication file(full path) \n" ); fprintf( stderr, " expire time: auth token expiration time(sec) \n" ); fprintf( stderr, "\n" ); fprintf( stderr, " ex) %s test pass test1 authkey /user/service/cert/test123.cert 3600", prg ); fprintf( stderr, "\n" ); fprintf( stderr, "\n" ); fprintf( stderr, " %s is Solbox Cloud Storage auth token tool.\n", prg ); fprintf( stderr, "\n" ); fprintf( stderr, "[Note] This program doesn't check for the input argument.\n"); fprintf( stderr, "\n" ); return; } int main(int argc, char * argv[]) { if( argc != 7 ) { PrintUsage(argv[0]); return 1; } ///////////////////////// SSDK //////////////////////////////////////////////////////////////////// // !!! 중요 !!! // SSDK 가 End User에게 배포가되면 안됩니다. // 그 이유는 보안상 취약점이 발생 하기때문입니다. // 해당 소스는 샘플용일 뿐이며, SSDK는 인증서버를 마련하여 해당 서버에서 // 생성해 전달 될 수 있도록 제작되어야 합니다. char *__auth_string = NULL; time_t expire = time(0)+atoll(argv[6]); /* SSDK : get auth string */ __auth_string = (char *)sh_get_auth_string(argv[1], argv[2], argv[3], argv[4], argv[5], expire); if (!__auth_string) { fprintf(stderr, "Cannot get the auth string.\n"); return 1; } tm * ptm = localtime(&expire); char buffer[64] = {0}; strftime(buffer, 64, "%F %T", ptm); fprintf(stdout, "\n"); fprintf(stdout, "* auth token : \n"); fprintf(stdout, "%s\n\n",__auth_string); fprintf(stdout, "* expire date : \n"); fprintf(stdout, "%s \n",buffer); fprintf(stdout, "\n"); if(__auth_string) sh_mem_free(__auth_string); ///////////////////////// SSDK //////////////////////////////////////////////////////////////////// return 0; }