jtulach@47: /* jtulach@47: * To change this template, choose Tools | Templates jtulach@47: * and open the template in the editor. jtulach@47: */ jtulach@47: jtulach@47: package org.apidesign.api.security; jtulach@47: jtulach@47: import java.nio.ByteBuffer; jtulach@47: import org.apidesign.spi.security.Digestor; jtulach@47: jtulach@47: /** jtulach@47: * jtulach@47: * @author Jaroslav Tulach jtulach@47: */ jtulach@47: final class DigestImplementation { jtulach@47: private static final DigestorAccessorImpl ACCESSOR = new DigestorAccessorImpl(); jtulach@47: jtulach@47: private final Digestor digestor; jtulach@47: private final String algorithm; jtulach@47: private Data data; jtulach@47: jtulach@47: private DigestImplementation(Digestor digestor, String algorithm, Data d) { jtulach@47: this.digestor = digestor; jtulach@47: this.algorithm = algorithm; jtulach@47: this.data = d; jtulach@47: } jtulach@47: jtulach@47: static DigestImplementation create(Digestor digestor, String algorithm) { jtulach@47: Data d = ACCESSOR.create(digestor, algorithm); jtulach@47: if (d == null) { jtulach@47: return null; jtulach@47: } else { jtulach@47: return new DigestImplementation(digestor, algorithm, d); jtulach@47: } jtulach@47: } jtulach@47: jtulach@47: byte[] digest(ByteBuffer bb) { jtulach@47: ACCESSOR.update(digestor, data, bb); jtulach@47: return ACCESSOR.digest(digestor, data); jtulach@47: } jtulach@47: }