NethermindEth / dotnet-libp2p

A libp2p implementation for .NET in C#.
MIT License
66 stars 26 forks source link

QUIC known issues #54

Open flcl42 opened 1 year ago

flcl42 commented 1 year ago

OS related

error: System.Security.Cryptography.CryptographicException: ASN1 corrupted data.  ---> System.ArgumentException: The input to WriteEncodedValue must represent a single encoded value with no trailing data. (Parameter 'value')    
  at System.Formats.Asn1.AsnWriter.WriteEncodedValue(ReadOnlySpan`1 value)    
  at System.Security.Cryptography.Asn1.AlgorithmIdentifierAsn.Encode(AsnWriter writer, Asn1Tag tag)    --- End of inner exception stack trace ---    
  at System.Security.Cryptography.Asn1.AlgorithmIdentifierAsn.Encode(AsnWriter writer, Asn1Tag tag)    
  at System.Security.Cryptography.Asn1.SubjectPublicKeyInfoAsn.Encode(AsnWriter writer, Asn1Tag tag)    
  at System.Security.Cryptography.X509Certificates.PublicKey.EncodeSubjectPublicKeyInfo()    
  at System.Security.Cryptography.X509Certificates.PublicKey.ExportSubjectPublicKeyInfo()    
  at Nethermind.Libp2p.Protocols.Quic.CertificateHelper.ValidateCertificate(X509Certificate2 certificate, String peerId)    
  at Quic2Protocol.VerifyRemoteCertificate(IPeer remotePeer, X509Certificate certificate) in /app/Program.cs:line 320    
  at Quic2Protocol.<>c__DisplayClass7_0.<DialAsync>b__1(Object _, X509Certificate c, X509Chain _, SslPolicyErrors _) in /app/Program.cs:line 296    
  at System.Net.Quic.QuicConnection.SslConnectionOptions.ValidateCertificate(QUIC_BUFFER* certificatePtr, QUIC_BUFFER* chainPtr, X509Certificate2& certificate)    
  at System.Net.Quic.QuicConnection.HandleEventPeerCertificateReceived(_PEER_CERTIFICATE_RECEIVED_e__Struct& data) --- End of stack trace from previous location ---    
  at System.Net.Quic.ValueTaskSource.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)    
  at System.Net.Quic.QuicConnection.FinishConnectAsync(QuicClientConnectionOptions options, CancellationToken cancellationToken)    
  at System.Net.Quic.QuicConnection.ConnectAsync(QuicClientConnectionOptions options, CancellationToken cancellationToken)    
  at System.Net.Quic.QuicConnection.ConnectAsync(QuicClientConnectionOptions options, CancellationToken cancellationToken)    
  at Quic2Protocol.DialAsync(IChannel channel, IChannelFactory channelFactory, IPeerContext context) in /app/Program.cs:line 302

Interoperability related