public bool VerifyDataSignature(byte[] buffer, byte[] signature) { using (SHA512Managed sha = new SHA512Managed()) { var buffHash = sha.ComputeHash(buffer); return(GMSS.VerifyGMSSSignature(buffHash, signature, _publicKeyFile)); } }
public byte[] ComputeHash(byte[] buffer) { using (SHA512Managed sha = new SHA512Managed()) { var buffHash = sha.ComputeHash(buffer); return(GMSS.SignWithGMSS(buffHash, _privateKeyFile)); } }
static void Main(string[] args) { Console.WriteLine("Hello World!"); // GMSS/JWT test string testLabel = "MarekTest123"; var keyPairFiles = GMSS.GenerateGMSSKeys(testLabel); JwtPayload jwtPayload = new JwtPayload(); jwtPayload.Issuer = "Marek"; jwtPayload.IssuedAt = DateTimeOffset.UtcNow.ToUnixTimeSeconds(); jwtPayload.NotBefore = jwtPayload.IssuedAt; jwtPayload.Expires = jwtPayload.NotBefore + 3600; jwtPayload.Subject = "MarekTester"; jwtPayload.Audience = "MarekTest"; var jwtEncoded = JsonWebToken.Encode(jwtPayload, keyPairFiles.Item1, JwtAlgorithm.GMSS512); var jwtDecoded = JsonWebToken.Decode(jwtEncoded, keyPairFiles.Item2, "", ""); return; // GMSS TEST TestSign(GMSSParamSets.FromName(GMSSVersion)); return; // RSM/TSM TEST: KeyParams keyParams = null; byte[] test = Encoding.UTF8.GetBytes("ala ma kotka"); var testStream = new MemoryStream(test); using (KeyGenerator kg = new KeyGenerator()) { keyParams = kg.GetKeyParams(192, 32, 32); // for TSM: kg.GetKeyParams(192, 16, 16); // for RSM: kg.GetKeyParams(192, 32, 32); } var testEncrypted = Encrypt(test, keyParams); var testDecrypted = Decrypt(testEncrypted, keyParams); var xxxxx = Encoding.UTF8.GetString(testDecrypted); }