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"));
        }
Exemple #2
0
        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.");
            }
        }
Exemple #4
0
        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);
        }
Exemple #5
0
 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);