示例#1
0
            public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
            {
                ShareData data = value as ShareData;

                if (data == null)
                {
                    throw new ArgumentException("invalid data to serialize");
                }

                INodeCrypto parent = data.Parent as INodeCrypto;

                if (parent == null)
                {
                    throw new ArgumentException("parent node must implement INodeCrypto");
                }

                writer.WriteStartArray();

                if (parent.SharedKey != null)
                {
                    writer.WriteStartArray();
                    writer.WriteValue(data.Parent.Id);
                    writer.WriteEndArray();

                    writer.WriteStartArray();
                    writer.WriteValue(data.CompletionHandle);
                    writer.WriteEndArray();

                    writer.WriteStartArray();
                    writer.WriteValue(0);
                    writer.WriteValue(0);
                    writer.WriteValue(Crypto.EncryptAesEcb(data.Key, parent.SharedKey).ToBase64());
                    writer.WriteEndArray();
                }

                writer.WriteEndArray();
            }