public LightningLogStore(ILogObjectTypeProvider typeProvider) { _typeProvider = typeProvider; _hashProvider = new LogEntryHashProvider(_typeProvider); _keyBuilder = new SequenceKeyBuilder(); _sequence = new LogStoreSequenceProvider(this); }
public OntologyWriter(ILogStore store, ILogObjectTypeProvider typeProvider, ILogEntryHashProvider hashProvider, IOntologyChangeHandler changeHandler, IOptions <WebServerOptions> options) { _store = store; _typeProvider = typeProvider; _hashProvider = hashProvider; _changeHandler = changeHandler; _options = options; }
public LogDeserializeContext(BinaryReader br, ILogObjectTypeProvider typeProvider) { this.br = br; this.typeProvider = typeProvider; Version = br.ReadUInt64(); if (Version > LogSerializeContext.FormatVersion) { throw new Exception("Tried to load block with a version that is too new"); } }
public LogSerializeContext(BinaryWriter bw, ILogObjectTypeProvider typeProvider, ulong version = FormatVersion) { this.bw = bw; this.typeProvider = typeProvider; if (Version > FormatVersion) { throw new Exception("Tried to save block with a version that is too new"); } Version = version; bw.Write(Version); }
public LightningRecordStore(string partitionKey, ISearchIndex index, RecordEvents events, ILogObjectTypeProvider typeProvider, ILogger <LightningRecordStore> logger = default) { _index = index; _events = events; _logger = logger; _typeProvider = typeProvider; _columnKeyBuilder = new RecordColumnKeyBuilder(); _recordKeyBuilder = new RecordKeyBuilder(); _sequence = new GlobalSequenceProvider(partitionKey); }
public LightningMediaStore(MediaEvents events, ILogObjectTypeProvider typeProvider) { _events = events; _typeProvider = typeProvider; _mediaKeyBuilder = new MediaKeyBuilder(); }
internal LogEntryHashProvider(ILogObjectTypeProvider typeProvider, HashAlgorithm algorithm) { _typeProvider = typeProvider; _algorithm = algorithm; }
public LogEntryHashProvider(ILogObjectTypeProvider typeProvider) : this(typeProvider, SHA256.Create()) { }
public static void RoundTripCheck(this LogEntry entry, ILogObjectTypeProvider typeProvider, byte[] secretKey) { var firstMemoryStream = new MemoryStream(); var firstSerializeContext = new LogSerializeContext(new BinaryWriter(firstMemoryStream), typeProvider); byte[] nonce; if (secretKey != null) { nonce = SecretStream.Nonce(); firstSerializeContext.bw.WriteVarBuffer(nonce); using var ems = new MemoryStream(); using var ebw = new BinaryWriter(ems); var ec = new LogSerializeContext(ebw, typeProvider, firstSerializeContext.Version); entry.Serialize(ec, false); firstSerializeContext.bw.WriteVarBuffer(SecretStream.EncryptMessage(ems.ToArray(), nonce, secretKey)); } else { firstSerializeContext.bw.Write(false); entry.Serialize(firstSerializeContext, false); } var originalData = firstMemoryStream.ToArray(); var br = new BinaryReader(new MemoryStream(originalData)); var deserializeContext = new LogDeserializeContext(br, typeProvider); nonce = deserializeContext.br.ReadVarBuffer(); LogEntry deserialized; if (nonce != null) { using var dms = new MemoryStream(SecretStream.DecryptMessage(deserializeContext.br.ReadVarBuffer(), nonce, secretKey)); using var dbr = new BinaryReader(dms); var dc = new LogDeserializeContext(dbr, typeProvider); deserialized = new LogEntry(dc); } else { deserialized = new LogEntry(deserializeContext); } var secondMemoryStream = new MemoryCompareStream(originalData); var secondSerializeContext = new LogSerializeContext(new BinaryWriter(secondMemoryStream), typeProvider); if (secretKey != null) { secondSerializeContext.bw.WriteVarBuffer(nonce); using var ems = new MemoryStream(); using var ebw = new BinaryWriter(ems); var ec = new LogSerializeContext(ebw, typeProvider, secondSerializeContext.Version); deserialized.Serialize(ec, false); secondSerializeContext.bw.WriteVarBuffer(SecretStream.EncryptMessage(ems.ToArray(), nonce, secretKey)); } else { secondSerializeContext.bw.Write(false); deserialized.Serialize(secondSerializeContext, false); } }
public LightningPageStore(PageEvents events, ILogObjectTypeProvider typeProvider) { _events = events; _typeProvider = typeProvider; _pageKeyBuilder = new PageKeyBuilder(); }