private string ComputeDigest(Func <Stream> byteStreamFunction, IPrivacyStrategy privacyStrategy, bool computeDigest) { return(computeDigest ? privacyStrategy.EncryptStream(byteStreamFunction.Invoke()).Digest() : null); }
internal DownloadParameter(string transactionHash, string accountPrivateKey, IPrivacyStrategy privacyStrategy, bool validateDigest) { TransactionHash = transactionHash; AccountPrivateKey = accountPrivateKey; PrivacyStrategy = privacyStrategy; ValidateDigest = validateDigest; }
private IObservable <Stream> GetDataByteStream(ProximaxMessagePayloadModel messagePayload, string dataHash, IPrivacyStrategy privacyStrategy, bool validateDigest, string digest) { var resolvedDataHash = messagePayload != null ? messagePayload.Data.DataHash : dataHash; var resolvedDigest = messagePayload != null ? messagePayload.Data.Digest : digest; var resolvedContentType = messagePayload?.Data.ContentType; return(RetrieveProximaxDataService.GetDataByteStream(resolvedDataHash, privacyStrategy, validateDigest, resolvedDigest, resolvedContentType)); }
public IObservable <Stream> GetByteStream(string dataHash, IPrivacyStrategy privacyStrategy, string digest) { CheckParameter(dataHash != null, "dataHash is required"); var privacyStrategyToUse = privacyStrategy ?? PlainPrivacyStrategy.Create(); ValidateDigest(digest, dataHash); return(FileRepository.GetByteStream(dataHash).Select(stream => privacyStrategyToUse.DecryptStream(stream))); }
internal DirectDownloadParameter(string transactionHash, string accountPrivateKey, string dataHash, bool validateDigest, IPrivacyStrategy privacyStrategy, string digest) { TransactionHash = transactionHash; AccountPrivateKey = accountPrivateKey; DataHash = dataHash; ValidateDigest = validateDigest; PrivacyStrategy = privacyStrategy; Digest = digest; }
public IObservable <FileUploadResponse> UploadByteStream(Func <Stream> byteStreamFunction, IPrivacyStrategy privacyStrategy, bool?computeDigest) { CheckParameter(byteStreamFunction != null, "byteStreamFunction is required"); var computeDigestToUse = computeDigest ?? false; var privacyStrategyToUse = privacyStrategy ?? PlainPrivacyStrategy.Create(); var digest = ComputeDigest(byteStreamFunction, privacyStrategyToUse, computeDigestToUse); var dataHashOb = FileRepository.AddByteStream(privacyStrategyToUse.EncryptStream(byteStreamFunction?.Invoke())); return(dataHashOb.Select(dataHash => new FileUploadResponse(dataHash, CurrentTimeMillis(), digest))); }
public UploadParameter(IUploadParameterData data, string signerPrivateKey, string recipientPublicKey, string recipientAddress, bool computeDigest, bool detectContentType, int transactionDeadline, List <Mosaic> transactionMosaics, bool useBlockchainSecureMessage, IPrivacyStrategy privacyStrategy) { Data = data; SignerPrivateKey = signerPrivateKey; RecipientPublicKey = recipientPublicKey; RecipientAddress = recipientAddress; ComputeDigest = computeDigest; DetectContentType = detectContentType; TransactionDeadline = transactionDeadline; TransactionMosaics = transactionMosaics; UseBlockchainSecureMessage = useBlockchainSecureMessage; PrivacyStrategy = privacyStrategy; Version = SchemaVersion; }
public IObservable <Stream> GetDataByteStream(string dataHash, IPrivacyStrategy privacyStrategy, bool validateDigest, string digest, string contentType) { CheckParameter(dataHash != null, "dataHash is required"); CheckParameter(privacyStrategy != null, "privacyStrategy is required"); if (contentType != null && contentType.Equals(PathUploadContentType)) { // path throw new NotSupportedException("download of path is not yet supported"); } else { // byte array var digestToUse = validateDigest ? digest : null; return(FileDownloadService.GetByteStream(dataHash, privacyStrategy, digestToUse)); } }
public UploadParameterBuilder WithPrivacyStrategy(IPrivacyStrategy privacyStrategy) { PrivacyStrategy = privacyStrategy; return(this); }
public UploadParameterBuilder WithPasswordPrivacy(string password) { PrivacyStrategy = PasswordPrivacyStrategy.Create(password); return(this); }
public UploadParameterBuilder WithNemKeysPrivacy(string privateKey, string publicKey) { PrivacyStrategy = NemKeysPrivacyStrategy.Create(privateKey, publicKey); return(this); }
public UploadParameterBuilder WithPlainPrivacy() { PrivacyStrategy = PlainPrivacyStrategy.Create(); return(this); }
public DirectDownloadParameterBuilder WithPrivacyStrategy(IPrivacyStrategy privacyStrategy) { PrivacyStrategy = privacyStrategy; return this; }