new public CBORObject EncodeToCBORObject() { CBORObject cborBodyAttributes = null; byte[] rgbBody = null; if (m_msgToSign != null) { if (m_msgToSign.GetType() == typeof(EnvelopedMessage)) { EnvelopedMessage msg = (EnvelopedMessage)m_msgToSign; msg.Encrypt(); CBORObject obj = msg.EncodeToCBORObject(); if (obj[1].Type != CBORType.ByteString) { throw new Exception("Internal error"); } if (obj[3].Type != CBORType.ByteString) { throw new Exception("Internal error"); } rgbBody = obj[3].GetByteString(); cborBodyAttributes = obj[1]; } } else if (m_signerToSign != null) { CBORObject obj = m_signerToSign.EncodeToCBORObject(); } return(base.EncodeToCBORObject(cborBodyAttributes.GetByteString(), rgbBody)); }
public void nullKey() { EnvelopedMessage msg = new EnvelopedMessage(); msg.AddAttribute(HeaderKeys.Algorithm, AlgorithmValues.AES_GCM_128, true); msg.SetContent(strContent); msg.Encrypt(); }
public void noContent() { EnvelopedMessage msg = new EnvelopedMessage(); msg.AddAttribute(HeaderKeys.Algorithm, AlgorithmValues.AES_GCM_128, true); Recipient r = new Recipient(key128, AlgorithmValues.Direct); msg.AddRecipient(r); msg.Encrypt(); }
public void noAlgorithm() { EnvelopedMessage msg = new EnvelopedMessage(); msg.SetContent(strContent); Recipient r = new Recipient(key128, AlgorithmValues.Direct); msg.AddRecipient(r); msg.Encrypt(); }
public void unsupportedAlgorithm() { EnvelopedMessage msg = new EnvelopedMessage(); msg.AddAttribute(HeaderKeys.Algorithm, AlgorithmValues.HMAC_SHA_256, true); msg.SetContent(strContent); Recipient r = new Recipient(key128, AlgorithmValues.Direct); msg.AddRecipient(r); msg.Encrypt(); }
public void unknownAlgorithm() { EnvelopedMessage msg = new EnvelopedMessage(); msg.AddAttribute(HeaderKeys.Algorithm, CBORObject.FromObject("Unknown"), true); msg.SetContent(strContent); Recipient r = new Recipient(key128, AlgorithmValues.Direct); msg.AddRecipient(r); msg.Encrypt(); }
public void incorrectIV() { EnvelopedMessage msg = new EnvelopedMessage(); msg.AddAttribute(HeaderKeys.Algorithm, AlgorithmValues.AES_GCM_128, true); msg.AddAttribute(HeaderKeys.IV, CBORObject.FromObject(rgbIV128), false); msg.SetContent(strContent); Recipient r = new Recipient(key128, AlgorithmValues.Direct); msg.AddRecipient(r); msg.Encrypt(); }
public void encryptNoEmitContent() { EnvelopedMessage msg = new EnvelopedMessage(true, false); msg.AddAttribute(HeaderKeys.Algorithm, AlgorithmValues.AES_GCM_128, true); msg.AddAttribute(HeaderKeys.IV, CBORObject.FromObject(rgbIV96), false); msg.SetContent(strContent); Recipient r = new Recipient(key128, AlgorithmValues.Direct); msg.AddRecipient(r); msg.Encrypt(); CBORObject cn = msg.EncodeToCBORObject(); Assert.IsTrue(cn[2].IsNull); }
public void roundTrip() { EnvelopedMessage msg = new EnvelopedMessage(); msg.AddAttribute(HeaderKeys.Algorithm, AlgorithmValues.AES_GCM_128, true); msg.AddAttribute(HeaderKeys.IV, CBORObject.FromObject(rgbIV96), false); msg.SetContent(strContent); Recipient r = new Recipient(key128, AlgorithmValues.Direct); msg.AddRecipient(r); msg.Encrypt(); byte[] rgbMsg = msg.EncodeToBytes(); msg = (EnvelopedMessage)Message.DecodeFromBytes(rgbMsg); r = msg.RecipientList[0]; r.SetKey(key128); msg.Decrypt(r); Assert.AreEqual <string>(msg.GetContentAsString(), strContent); }
public void nullKeyForDecrypt() { EnvelopedMessage msg = new EnvelopedMessage(true, true); // thrown.expect(CoseException.class); // thrown.expectMessage("No Enveloped Content Specified"); msg.AddAttribute(HeaderKeys.Algorithm, AlgorithmValues.AES_GCM_128, true); msg.AddAttribute(HeaderKeys.IV, CBORObject.FromObject(rgbIV96), false); msg.SetContent(strContent); Recipient r = new Recipient(key128, AlgorithmValues.Direct); msg.AddRecipient(r); msg.Encrypt(); byte[] rgb = msg.EncodeToBytes(); msg = (EnvelopedMessage)Message.DecodeFromBytes(rgb); msg.Decrypt(null); }
public void roundTripDetached() { EnvelopedMessage msg = new EnvelopedMessage(true, false); msg.AddAttribute(HeaderKeys.Algorithm, AlgorithmValues.AES_GCM_128, true); msg.AddAttribute(HeaderKeys.IV, CBORObject.FromObject(rgbIV96), false); msg.SetContent(strContent); Recipient r = new Recipient(key128, AlgorithmValues.Direct); msg.AddRecipient(r); msg.Encrypt(); byte[] content = msg.GetEncryptedContent(); byte[] rgb = msg.EncodeToBytes(); msg = (EnvelopedMessage)Message.DecodeFromBytes(rgb); msg.SetEncryptedContent(content); r = msg.RecipientList[0]; r.SetKey(key128); msg.Decrypt(r); }