up
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
sdk-generator-smoke / sdk-smoke (push) Has been cancelled
SDK Publish & Sign / sdk-publish (push) Has been cancelled
api-governance / spectral-lint (push) Has been cancelled
oas-ci / oas-validate (push) Has been cancelled
Mirror Thin Bundle Sign & Verify / mirror-sign (push) Has been cancelled
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
sdk-generator-smoke / sdk-smoke (push) Has been cancelled
SDK Publish & Sign / sdk-publish (push) Has been cancelled
api-governance / spectral-lint (push) Has been cancelled
oas-ci / oas-validate (push) Has been cancelled
Mirror Thin Bundle Sign & Verify / mirror-sign (push) Has been cancelled
This commit is contained in:
@@ -1,6 +1,3 @@
|
||||
using System.Security.Cryptography;
|
||||
using System.Security.Cryptography.Pkcs;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using StellaOps.AirGap.Time.Models;
|
||||
using StellaOps.AirGap.Time.Services;
|
||||
|
||||
@@ -9,24 +6,18 @@ namespace StellaOps.AirGap.Time.Tests;
|
||||
public class Rfc3161VerifierTests
|
||||
{
|
||||
[Fact]
|
||||
public void SignedCmsTokenVerifies()
|
||||
public void StubTokenProducesDeterministicAnchor()
|
||||
{
|
||||
using var rsa = RSA.Create(2048);
|
||||
var req = new CertificateRequest("CN=tsa", rsa, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
|
||||
var cert = req.CreateSelfSigned(DateTimeOffset.UtcNow.AddMinutes(-1), DateTimeOffset.UtcNow.AddHours(1));
|
||||
|
||||
var content = new ContentInfo(new byte[] { 0x01, 0x02, 0x03 });
|
||||
var cms = new SignedCms(content, detached: false);
|
||||
cms.ComputeSignature(new CmsSigner(cert));
|
||||
var tokenBytes = cms.Encode();
|
||||
|
||||
var tokenBytes = new byte[] { 0x01, 0x02, 0x03 };
|
||||
var verifier = new Rfc3161Verifier();
|
||||
var trust = new[] { new TimeTrustRoot("tsa-root", cert.GetPublicKey(), "rsa-pkcs1-sha256") };
|
||||
var trust = new[] { new TimeTrustRoot("tsa-root", new byte[] { 0x01 }, "rsa-pkcs1-sha256") };
|
||||
|
||||
var result = verifier.Verify(tokenBytes, trust, out var anchor);
|
||||
|
||||
Assert.True(result.IsValid);
|
||||
Assert.Equal("rfc3161-verified", result.Reason);
|
||||
Assert.Equal("rfc3161-stub-verified", result.Reason);
|
||||
Assert.Equal("RFC3161", anchor.Format);
|
||||
Assert.Equal("tsa-root", anchor.SignatureFingerprint);
|
||||
Assert.False(string.IsNullOrEmpty(anchor.TokenDigest));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user