本文整理汇总了Java中org.bouncycastle.crypto.io.DigestOutputStream类的典型用法代码示例。如果您正苦于以下问题:Java DigestOutputStream类的具体用法?Java DigestOutputStream怎么用?Java DigestOutputStream使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
DigestOutputStream类属于org.bouncycastle.crypto.io包,在下文中一共展示了DigestOutputStream类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getOutputStream
import org.bouncycastle.crypto.io.DigestOutputStream; //导入依赖的package包/类
@GuardedBy("lock")
Optional<OutputStream> getOutputStream(byte[] checksum, Path to) throws IOException {
Path temp = tempFile(TEMP_FILE_RETRY);
// Possibly superfluous. Is user likely to delete the temp folder whilst a backup is in progress?
if (!DirectoryAssistant.create(tempFolder)) {
logger.warn("-- getOutputStream() - failed to create temp folder: {}", tempFolder);
return Optional.empty();
}
OutputStream os = Files.newOutputStream(temp);
DigestOutputStream dos = new DigestOutputStream(digests.get());
TeeOutputStream tos = new TeeOutputStream(os, dos);
HookOutputStream<OutputStream> hos = new HookOutputStream<>(tos, callback(checksum, dos, temp, to));
return Optional.of(hos);
}
示例2: engineStore
import org.bouncycastle.crypto.io.DigestOutputStream; //导入依赖的package包/类
public void engineStore(OutputStream stream, char[] password)
throws IOException
{
Cipher cipher;
DataOutputStream dOut = new DataOutputStream(stream);
byte[] salt = new byte[STORE_SALT_SIZE];
int iterationCount = MIN_ITERATIONS + (random.nextInt() & 0x3ff);
random.nextBytes(salt);
dOut.writeInt(version);
dOut.writeInt(salt.length);
dOut.write(salt);
dOut.writeInt(iterationCount);
cipher = this.makePBECipher(STORE_CIPHER, Cipher.ENCRYPT_MODE, password, salt, iterationCount);
CipherOutputStream cOut = new CipherOutputStream(dOut, cipher);
DigestOutputStream dgOut = new DigestOutputStream(new SHA1Digest());
this.saveStore(new TeeOutputStream(cOut, dgOut));
byte[] dig = dgOut.getDigest();
cOut.write(dig);
cOut.close();
}
示例3: copy
import org.bouncycastle.crypto.io.DigestOutputStream; //导入依赖的package包/类
void copy(byte[] checksum, DigestOutputStream dos, OutputStream os, Path temp, Path to) throws IOException {
synchronized (lock) {
byte[] digest = dos.getDigest();
if (testDigest.test(digest, checksum)) {
logger.debug("-- copy() - positive checksum match: {}", Hex.toHexString(digest));
} else {
Files.deleteIfExists(temp);
throw new IOException("DiskChunkStore copy, bad digest/ corrupt data: " + Hex.toHexString(digest));
}
if (Files.exists(to)) {
logger.debug("-- copy() - duplicate chunk ignored: {}", to);
Files.deleteIfExists(temp);
return;
}
if (!Files.exists(temp)) {
throw new IOException("DiskChunkStore copy, temporary file missing: " + temp);
}
if (!DirectoryAssistant.createParent(to)) {
throw new IOException("DiskChunkStore copy, failed to create cache directory: " + to);
}
try {
Files.move(temp, to);
} catch (IOException ex) {
logger.warn("-- copy() - IOException: {}", ex);
throw new IOException("DiskChunkStore copy, failed", ex);
}
logger.debug("-- copy() - chunk created: {}", to);
}
}
示例4: callback
import org.bouncycastle.crypto.io.DigestOutputStream; //导入依赖的package包/类
IOConsumer<OutputStream> callback(byte[] checksum, DigestOutputStream dos, Path temp, Path to) {
return os -> copy(checksum, dos, os, temp, to);
}