/* ==================================================================
* Created [2009-4-27 下午11:32:55] by Jon.King
* ==================================================================
* TSS
* ==================================================================
* mailTo:jinpujun@hotmail.com
* Copyright (c) Jon.King, 2009-2012
* ==================================================================
*/
package com.jinhe.tss.core.common.license;
import java.io.File;
import junit.framework.TestCase;
import com.jinhe.tss.core.common.license.License;
import com.jinhe.tss.core.common.license.LicenseFactory;
import com.jinhe.tss.core.common.license.LicenseManager;
import com.jinhe.tss.core.util.FileHelper;
public class LicenseTest extends TestCase {
public void testLicense() {
// 第一步:生成公钥、私钥对。公钥公开,注意保管好私钥(如果泄露,则有可能被hacker随意创建license)。
try {
LicenseFactory.generateKey();
} catch (Exception e) {
assertTrue(e.getMessage(), false);
}
// 第二步:根据产品、版本、Mac地址、有效期等信息,签名产生注册号,并将该注册号复制到license文件中。
License license = null;
try {
license = License.fromConfigFile("cpu.license");
LicenseFactory.sign(license);
} catch (Exception e) {
assertTrue(e.getMessage(), false);
}
FileHelper.writeFile(new File(LicenseFactory.LICENSE_DIR + "/cpu.license"), license.toString());
System.out.println(license);
// 第三步:利用公钥对license进行合法性验证。可以在软件代码的重要模块中加入下面的验证,比如登录模块等。
LicenseManager manager = LicenseManager.getInstance();
assertEquals(true, manager.validateLicense(license.getProduct(), license.getVersion()));
assertEquals("Commercial", manager.getLicenseType(license.getProduct(), license.getVersion()));
}
}