Files
2026-08-07 17:38:18 +09:00

74 lines
2.4 KiB
C++

#include <time.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctime>
#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;
}