public void Test_VerifyCheckSum() { var serialNumber = SerialNumber.Create("ABC"); Assert.IsTrue(SerialNumber.IsCheckSumValid(serialNumber)); var modified = "D" + new string(serialNumber.Skip(1).ToArray()); Assert.IsFalse(SerialNumber.IsCheckSumValid(modified)); Assert.IsFalse(SerialNumber.IsCheckSumValid(modified + "A")); TestHelper.AssertException <ArgumentNullException>(() => SerialNumber.IsCheckSumValid(null)); Assert.IsFalse(SerialNumber.IsCheckSumValid("")); Assert.IsFalse(SerialNumber.IsCheckSumValid("ABCDER")); }
public void TestHasXXXProperties_True() { var key = "BwIAAACkAABSU0EyAAQAAAEAAQALrzxPFiBp4EN5aeLtZZ4sTvcfYn+fSpmxJvhSUxP/9fm+uaWwJ+n7+jc4Zf2tB+WDulTJo5ryauHgKjx5MHMmWNLr77mD3ws11BC61VDt65fIY4DLsvn49ZYajJy3oUwDvyEsnGArUH3IUhCTv/OWbHovmb69Xlg90mEcsIhOm2WKki+1cc7ZeBANtR57SMLv3qDH+DQqTxBb4UOHmJs4YfrMjqOEXBg0pDLT4HHzIz7WVu9ltKJdQZn626aGdMivhKQqxiJj3YsdFiLgM4BZk9ZGCxI2AJLp9Q/IRwqGKg4T0NlNWbqH1P5Zvq2nxVxSQEI/ARpUK1C8CIsnXVfGyRNp5nkFlM05O2HXhwLWhoHn5Dm76FMz5mClkFaRe8pK113sZK0Tw6sEVCrFMXeaiXSGK9xZifvnioOq9jRgp1fCpc5vLSE4VFGZ2vl89hrsfPKAIDIx5vXgNfOGjJXoDfHUkurih1qBG5Aiie5bD8e+LPVQ7jkM9CzFHRC756n1yAwSLUiv2cpbXD/YhZuHOOIljWjgcHKV9b9eyQXUilC8CQOE/1JLUHWLskhRH6NKRo1HVPxsuZpKLfkWEqti6TF8A4gllaJdjJEqq226EaXaRvP2RoqxjRBUKeT/NBN4focrEmjQpMKTAhMmpIutsXEqLbcXbR+0gBbvdIoEcEBbgizGJK8NJtWnli6qh4EEuaqtBYXkP0Io/bZJsc+WuWpHn9lXWIy/cPDTik+uEgbPF5MZEcmLVKJEsdnpcEc="; var lic = Lic.Builder .WithRsaPrivateKey(key) .WithHardwareIdentifier("HardwareIdentifier") .WithSerialNumber(SerialNumber.Create("GSA")) .ExpiresIn(TimeSpan.FromDays(100)) .WithProperty("Name", "Bill Gates") .WithProperty("Company", "Microsoft") .SignAndCreate(); Assert.IsTrue(lic.HasExpirationDate); Assert.IsTrue(lic.HasHardwareIdentifier); Assert.IsTrue(lic.HasSerialNumber); }
public void TestBuild() { var serialNumber = SerialNumber.Create("ABC"); Assert.AreEqual(25, serialNumber.Length); var splitted = serialNumber.Split('-'); Assert.AreEqual(5, splitted.Length); Assert.AreEqual("SNABC", splitted[0]); Assert.AreEqual(4, splitted[1].Length); Assert.AreEqual(4, splitted[2].Length); Assert.AreEqual(4, splitted[3].Length); Assert.AreEqual(4, splitted[4].Length); for (int i = 1; i < splitted.Length; i++) { Assert.IsTrue(ValidNumbersRegex.IsMatch(splitted[i]), $"Splitted part '{splitted[i]}' is not valid."); } }
SignedLicense IVerifier_VerifyLoad.LoadAndVerify(string licenseString) { var license = SignedLicense.Deserialize(licenseString); // verify signature license.Verify(mySigner); // verify application code if (!SerialNumber.IsApplicationCodeValid(license.SerialNumber, myApplicationCode)) { throw new SignedLicenseException($"Application Code '{myApplicationCode}' is not valid for the license."); } // verify hardware identifier if (!HardwareIdentifier.IsValidForCurrentComputer(license.HardwareIdentifier)) { throw new SignedLicenseException($"License has been activated for another computer."); } // verify expiration date if (license.ExpirationDate < DateTime.UtcNow) { throw new SignedLicenseException($"License has been expired since '{license.ExpirationDate}'."); } return(license); }
IVerifier_VerifyLoad IVerifier_ApplicationCode.WithApplicationCode(string threeLetterApplicationCode) { myApplicationCode = SerialNumber.EnsureApplicationCodeIsValid(threeLetterApplicationCode); return(this); }
public void TestCreateEmpty_ABC() { var serial = SerialNumber.CreateEmpty("ABC"); Assert.AreEqual("SNABC-0000-0000-0000-6LUX", serial); }
public void TestCreateEmpty_DEFE() => SerialNumber.CreateEmpty("DEFE");
public void TestCreateEmpty_Null() => SerialNumber.CreateEmpty(null);
public void TestCreate_DEFE() => SerialNumber.Create("DEFE");
public void TestCreate_DE2() => SerialNumber.Create("DE2");
public void TestCreate_Null() => SerialNumber.Create(null);