Checksum.java 1.76 KB
/*
 * Decompiled with CFR 0_118.
 */
package com.adobe.granite.contexthub.impl;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.LinkedList;

public class Checksum {
    public static final String DEFAULT_ALGORITHM = "SHA-1";
    public static final String INPUT_ENCODING = "UTF-8";
    MessageDigest messageDigest;
    LinkedList<String> errors = new LinkedList();

    public Checksum(String algorithm) {
        this.messageDigest = this.getInstance(algorithm);
        if (this.isInitialized()) {
            this.messageDigest.reset();
        }
    }

    public Checksum() {
        this("SHA-1");
    }

    public boolean isInitialized() {
        return this.messageDigest != null;
    }

    private MessageDigest getInstance(String algorithm) {
        MessageDigest messageDigest;
        try {
            messageDigest = MessageDigest.getInstance(algorithm);
        }
        catch (NoSuchAlgorithmException exception) {
            messageDigest = null;
        }
        return messageDigest;
    }

    public void update(String input) {
        if (input == null) {
            return;
        }
        try {
            this.messageDigest.update(input.getBytes("UTF-8"));
        }
        catch (UnsupportedEncodingException e) {
            this.errors.add(String.format("Error while updating checksum: %s", e.toString()));
        }
    }

    public String toString() {
        StringBuilder checksum = new StringBuilder();
        if (!this.isInitialized()) {
            return "";
        }
        for (byte el : this.messageDigest.digest()) {
            checksum.append(String.format("%1$02x", Byte.valueOf(el)));
        }
        return checksum.toString();
    }
}