Example #1
0
        /// <summary>
        /// Encode this as an NDN-TLV SafeBag.
        /// </summary>
        ///
        /// <returns>The encoded byte array as a Blob.</returns>
        public Blob wireEncode()
        {
            // Encode directly as TLV. We don't support the WireFormat abstraction
            // because this isn't meant to go directly on the wire.
            TlvEncoder encoder    = new TlvEncoder(256);
            int        saveLength = encoder.getLength();

            // Encode backwards.
            encoder.writeBlobTlv(net.named_data.jndn.encoding.tlv.Tlv.SafeBag_EncryptedKeyBag, privateKeyBag_.buf());
            // Add the entire Data packet encoding as is.
            encoder.writeBuffer(certificate_.wireEncode(net.named_data.jndn.encoding.TlvWireFormat.get()).buf());

            encoder.writeTypeAndLength(net.named_data.jndn.encoding.tlv.Tlv.SafeBag_SafeBag, encoder.getLength()
                                       - saveLength);

            return(new Blob(encoder.getOutput(), false));
        }