//--------------------------------------------------------------------------- #include #include "EncryptionF.h" #include #pragma hdrstop #include "FrmMainF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "cxContainer" #pragma link "cxControls" #pragma link "cxEdit" #pragma link "cxGraphics" #pragma link "cxLookAndFeelPainters" #pragma link "cxLookAndFeels" #pragma link "cxMaskEdit" #pragma link "cxSpinEdit" #pragma link "cxTextEdit" #pragma link "dxSkinBlack" #pragma link "dxSkinMcSkin" #pragma link "dxSkinsCore" #pragma link "cxButtons" #pragma link "cxDropDownEdit" #pragma resource "*.dfm" TFrmMain *FrmMain; //--------------------------------------------------------------------------- __fastcall TFrmMain::TFrmMain(TComponent* Owner) : TForm(Owner) { String FAppDir = ExtractFilePath(Application->ExeName); ConfigFileName = FAppDir + "\\License\\AipApiLicense.ini"; CboLoginType->ItemIndex = -1; LoadConfig(); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::LoadConfig() { TIniFile *pIniFile = NULL; pIniFile = new TIniFile(ConfigFileName); try { ApplicationName = pIniFile->ReadString("License", "ApplicationName", ""); ApplicationVersion = pIniFile->ReadString("License", "ApplicationVersion", ""); Domain = pIniFile->ReadString("License", "Domain", ""); MipDataPath = pIniFile->ReadString("License", "MipDataPath", ""); TenantId = pIniFile->ReadString("License", "TenantId", ""); ClientId = pIniFile->ReadString("License", "ClientId", ""); EMail = pIniFile->ReadString("License", "EMail", ""); LoginType = pIniFile->ReadString("License", "LoginType", "1").ToIntDef(1); SecretValue = pIniFile->ReadString("License", "SecretValue", ""); Thumbprint = pIniFile->ReadString("License", "Thumbprint", ""); } __finally { if (pIniFile) delete pIniFile; pIniFile = NULL; } EdAppName->Text = ApplicationName; EdAppVersion->Text = ApplicationVersion; EdDomain->Text = Domain; EdMipDataPath->Text = MipDataPath; EdTenantId->Text = TenantId; EdClientId->Text = ClientId; EdEmail->Text = EMail; CboLoginType->ItemIndex = LoginType-1; EdSecretValue->Text = SecretValue; EdThumbPrint->Text = Thumbprint; } //--------------------------------------------------------------------------- void __fastcall TFrmMain::SaveConfig() { TIniFile *pIniFile = NULL; pIniFile = new TIniFile(ConfigFileName); try { pIniFile->WriteString("License", "ApplicationName", ApplicationName); pIniFile->WriteString("License", "ApplicationVersion", ApplicationVersion); pIniFile->WriteString("License", "Domain", Domain); pIniFile->WriteString("License", "MipDataPath", MipDataPath); pIniFile->WriteString("License", "TenantId", TenantId); pIniFile->WriteString("License", "ClientId", ClientId); pIniFile->WriteString("License", "EMail", EMail); pIniFile->WriteString("License", "LoginType", String(LoginType+1)); pIniFile->WriteString("License", "SecretValue", SecretValue); pIniFile->WriteString("License", "Thumbprint", Thumbprint); } __finally { if (pIniFile) delete pIniFile; pIniFile = NULL; } Application->NormalizeTopMosts(); Application->MessageBox(L"AIP API ¶óÀ̼¾½º Á¤º¸¸¦ ÀúÀåÇÏ¿´½À´Ï´Ù.\r\nAIP API Service ÇÁ·Î±×·¥ÀÌ ½ÇÇà ÁßÀ̸é ÇÁ·Î±×·¥À» Àç±âµ¿ ÇÏ¿©¾ß ¼³Á¤ Á¤º¸°¡ ¹Ý¿µµË´Ï´Ù.", L"AIP API License File Save", MB_OK); Application->RestoreTopMosts(); } //--------------------------------------------------------------------------- void __fastcall TFrmMain::BtnSaveClick(TObject *Sender) { #if 0 GUID guid; CoCreateGuid(&guid); //UUID uuid; //UuidCreateSequential(&uuid); String product = "AIP Gateway"; String serialId = GUIDToString(guid); serialId = StringReplace(serialId, "{", "", TReplaceFlags() << rfReplaceAll); serialId = StringReplace(serialId, "}", "", TReplaceFlags() << rfReplaceAll); String issueDay = Now().FormatString("YYYY-MM-DD"); String licensee = txtHostName->Text.Trim(); String edition = cboProductType->ItemIndex == 0 ? "standard" : "enterprise"; String type = cboLicenseType->ItemIndex == 0 ? "demo" : "product"; String accounts = String((int)seLicenseCnt->Value); String identifiedHost = txtHostName->Text.Trim(); AnsiString encKey = product.UpperCase() + "hanteinfo12#$!" + serialId.LowerCase() + issueDay + edition.UpperCase() + type.LowerCase() + AnsiString((int)seLicenseCnt->Value + 10000) + identifiedHost.LowerCase(); String signature = ITSSHA256_Encrpyt(encKey);; String demoDuration = String((int)seDemoDuration->Value); moLicenseXml->Lines->Add(""); moLicenseXml->Lines->Add(""); moLicenseXml->Lines->Add(" "); moLicenseXml->Lines->Add(" " + product + ""); moLicenseXml->Lines->Add(" " + serialId + ""); moLicenseXml->Lines->Add(" " + issueDay + ""); //moLicenseXml->Lines->Add(" " + licensee + ""); moLicenseXml->Lines->Add(" " + edition + ""); moLicenseXml->Lines->Add(" " + type + ""); moLicenseXml->Lines->Add(" " + accounts + ""); moLicenseXml->Lines->Add(" " + identifiedHost + ""); moLicenseXml->Lines->Add(" " + signature + ""); if (type == "demo") { moLicenseXml->Lines->Add(" " + demoDuration + ""); } moLicenseXml->Lines->Add(" "); moLicenseXml->Lines->Add(""); moLicenseXml->Lines->Add(""); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmMain::CboLoginTypePropertiesChange(TObject *Sender) { if (CboLoginType->ItemIndex == 0) { LblHint->Caption = "Secret Value °ªÀ» ¼³Á¤Çϼ¼¿ä."; } else if (CboLoginType->ItemIndex == 1) { LblHint->Caption = "Certificate's thumbprint °ªÀ» ¼³Á¤Çϼ¼¿ä."; } else { LblHint->Caption = "Login Type À» ¼±ÅÃÇϼ¼¿ä."; } } //--------------------------------------------------------------------------- void __fastcall TFrmMain::ChkViewClick(TObject *Sender) { EdSecretValue->Properties->PasswordChar = ChkView->Checked ? wchar_t("*") : wchar_t("#0"); } //---------------------------------------------------------------------------