samples/messagedigest/src/org/apidesign/impl/security/extension/BridgeToOldAlgorithmsProvider.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 09:52:22 +0200
changeset 43 a161a4cdb597
permissions -rw-r--r--
Repackaging to org.apidesign packages
jtulach@43
     1
/*
jtulach@43
     2
 * To change this template, choose Tools | Templates
jtulach@43
     3
 * and open the template in the editor.
jtulach@43
     4
 */
jtulach@43
     5
jtulach@43
     6
package org.apidesign.impl.security.extension;
jtulach@43
     7
jtulach@43
     8
import org.apidesign.impl.security.friendapi.DigestImplementation;
jtulach@43
     9
import org.apidesign.impl.security.friendapi.DigestProvider;
jtulach@43
    10
import java.nio.ByteBuffer;
jtulach@43
    11
import java.security.MessageDigest;
jtulach@43
    12
import java.security.NoSuchAlgorithmException;
jtulach@43
    13
import java.util.logging.Level;
jtulach@43
    14
import java.util.logging.Logger;
jtulach@43
    15
jtulach@43
    16
/**
jtulach@43
    17
 *
jtulach@43
    18
 * @author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
jtulach@43
    19
 */
jtulach@43
    20
public class BridgeToOldAlgorithmsProvider implements DigestProvider {
jtulach@43
    21
jtulach@43
    22
    public DigestImplementation create(String algorithm) {
jtulach@43
    23
        try {
jtulach@43
    24
            final MessageDigest md = MessageDigest.getInstance(algorithm);
jtulach@43
    25
            return new DigestImplementation(algorithm) {
jtulach@43
    26
jtulach@43
    27
                @Override
jtulach@43
    28
                public void update(ByteBuffer bb) {
jtulach@43
    29
                    md.update(bb);
jtulach@43
    30
                }
jtulach@43
    31
jtulach@43
    32
                @Override
jtulach@43
    33
                public byte[] digest() {
jtulach@43
    34
                    return md.digest();
jtulach@43
    35
                }
jtulach@43
    36
            };
jtulach@43
    37
        } catch (NoSuchAlgorithmException ex) {
jtulach@43
    38
            Logger.getLogger(BridgeToOldAlgorithmsProvider.class.getName()).log(Level.INFO, null, ex);
jtulach@43
    39
            return null;
jtulach@43
    40
        }
jtulach@43
    41
    }
jtulach@43
    42
jtulach@43
    43
    static {
jtulach@43
    44
        new BridgeToOld();
jtulach@43
    45
    }
jtulach@43
    46
}