diff options
author | Peter Dettman <peter.dettman@bouncycastle.org> | 2021-11-11 14:06:03 +0700 |
---|---|---|
committer | Peter Dettman <peter.dettman@bouncycastle.org> | 2021-11-11 14:06:03 +0700 |
commit | 46230a012af2824a5e742db8e6dc5b23c720d696 (patch) | |
tree | 9cd842e680b7a9e3eac925f05bde504bb8670859 /crypto/src/asn1/DerBoolean.cs | |
parent | Handle high tag numbers (diff) | |
download | BouncyCastle.NET-ed25519-46230a012af2824a5e742db8e6dc5b23c720d696.tar.xz |
ASN.1: Update encoding in line with bc-java
Diffstat (limited to 'crypto/src/asn1/DerBoolean.cs')
-rw-r--r-- | crypto/src/asn1/DerBoolean.cs | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/crypto/src/asn1/DerBoolean.cs b/crypto/src/asn1/DerBoolean.cs index e2cd145a1..a6f972629 100644 --- a/crypto/src/asn1/DerBoolean.cs +++ b/crypto/src/asn1/DerBoolean.cs @@ -81,20 +81,25 @@ namespace Org.BouncyCastle.Asn1 get { return value != 0; } } - internal override bool EncodeConstructed() + internal override bool EncodeConstructed(int encoding) { return false; } - internal override int EncodedLength(bool withID) + internal override int EncodedLength(int encoding, bool withID) { return Asn1OutputStream.GetLengthOfEncodingDL(withID, 1); } internal override void Encode(Asn1OutputStream asn1Out, bool withID) { - // TODO Should we make sure the byte value is one of '0' or '0xff' here? - asn1Out.WriteEncodingDL(withID, Asn1Tags.Boolean, value); + byte contents = value; + if (Asn1OutputStream.EncodingDer == asn1Out.Encoding && IsTrue) + { + contents = 0xFF; + } + + asn1Out.WriteEncodingDL(withID, Asn1Tags.Boolean, contents); } protected override bool Asn1Equals( |