public void roundTripDetached() { EncryptMessage msg = new EncryptMessage(true, false); msg.AddAttribute(HeaderKeys.Algorithm, AlgorithmValues.AES_GCM_128, true); msg.AddAttribute(HeaderKeys.IV, CBORObject.FromObject(rgbIV96), false); msg.SetContent(strContent); msg.Encrypt(rgbKey128); byte[] content = msg.GetEncryptedContent(); byte[] rgb = msg.EncodeToBytes(); msg = (EncryptMessage)Message.DecodeFromBytes(rgb); msg.SetEncryptedContent(content); msg.Decrypt(rgbKey128); }
public new CBORObject EncodeToCBORObject() { CBORObject cborBodyAttributes = null; byte[] rgbBody = null; if (m_msgToSign != null) { if (m_msgToSign.GetType() == typeof(EncryptMessage)) { EncryptMessage msg = (EncryptMessage)m_msgToSign; msg.Encrypt(); rgbBody = msg.GetEncryptedContent(); } else if (m_msgToSign.GetType() == typeof(Encrypt0Message)) { Encrypt0Message msg = (Encrypt0Message)m_msgToSign; rgbBody = msg.GetEncryptedContent(); if (rgbBody == null) { throw new CoseException("Need to encrypt message before countersignatures can be processed."); } } cborBodyAttributes = m_msgToSign.ProtectedMap; } else if (m_signerToSign != null) { CBORObject obj = m_signerToSign.EncodeToCBORObject(); cborBodyAttributes = m_signerToSign.ProtectedMap; } else { throw new CoseException("Internal state error - NYI"); } CBORObject signed = base.EncodeToCBORObject(cborBodyAttributes.EncodeToBytes(), rgbBody); return(signed[2]); }
public void roundTripDetached() { EncryptMessage msg = new EncryptMessage(true, false); msg.AddAttribute(HeaderKeys.Algorithm, AlgorithmValues.AES_GCM_128, Attributes.PROTECTED); msg.AddAttribute(HeaderKeys.IV, CBORObject.FromObject(rgbIV96), Attributes.UNPROTECTED); msg.SetContent(strContent); Recipient r = new Recipient(key128, AlgorithmValues.Direct); msg.AddRecipient(r); msg.Encrypt(); byte[] content = msg.GetEncryptedContent(); byte[] rgb = msg.EncodeToBytes(); msg = (EncryptMessage)Message.DecodeFromBytes(rgb); msg.SetEncryptedContent(content); r = msg.RecipientList[0]; r.SetKey(key128); msg.Decrypt(r); }