public static bool Verify(PolicyObjectListSigned policylist, byte[] cer) { if (policylist == null) { return(false); } if (policylist.Items == null) { return(false); } if (policylist.TimeStampCheck > DateTime.Now.ToUniversalTime().AddMinutes(TimeStampPlusMinus) && policylist.TimeStampCheck < DateTime.Now.ToUniversalTime().AddMinutes(-TimeStampPlusMinus)) { Debug.WriteLine("Timestamp missmatch -+" + TimeStampPlusMinus.ToString() + " minutes"); return(false); } string JSON = policylist.TimeStampCheck.ToString("s") + "-" + policylist.Items.ToString(); if (Verify(Encoding.UTF8.GetBytes(JSON), policylist.Signature, cer) == false) { Debug.WriteLine("Verify failed"); return(false); } return(true); }
public static bool Sign(PolicyObjectListSigned policylist, string CN) { if (policylist == null) { return(false); } if (policylist.Items == null) { return(false); } policylist.TimeStampCheck = DateTime.Now.ToUniversalTime(); string JSON = policylist.TimeStampCheck.ToString("s") + "-" + policylist.Items.ToString(); policylist.Signature = Sign(Encoding.UTF8.GetBytes(JSON), CN, StoreLocation.LocalMachine); if (policylist.Signature == null) { return(false); } return(true); }