/// <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)); }