当前位置: 首页>>代码示例>>Java>>正文


Java DigestOutputStream类代码示例

本文整理汇总了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);
}
 
开发者ID:horrorho,项目名称:InflatableDonkey,代码行数:17,代码来源:DiskChunkStore.java

示例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();
}
 
开发者ID:Appdome,项目名称:ipack,代码行数:29,代码来源:BcKeyStoreSpi.java

示例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);
    }
}
 
开发者ID:horrorho,项目名称:InflatableDonkey,代码行数:33,代码来源:DiskChunkStore.java

示例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);
}
 
开发者ID:horrorho,项目名称:InflatableDonkey,代码行数:4,代码来源:DiskChunkStore.java


注:本文中的org.bouncycastle.crypto.io.DigestOutputStream类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。