All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.torquebox.mojo.rubygems.Sha1Digest Maven / Gradle / Ivy

The newest version!
/*
 * Sonatype Nexus (TM) Open Source Version
 * Copyright (c) 2008-present Sonatype, Inc.
 * All rights reserved. Includes the third-party code listed at http://links.sonatype.com/products/nexus/oss/attributions.
 *
 * This program and the accompanying materials are made available under the terms of the Eclipse Public License Version 1.0,
 * which accompanies this distribution and is available at http://www.eclipse.org/legal/epl-v10.html.
 *
 * Sonatype Nexus (TM) Professional Version is available from Sonatype, Inc. "Sonatype" and "Sonatype Nexus" are trademarks
 * of Sonatype, Inc. Apache Maven is a trademark of the Apache Software Foundation. M2eclipse is a trademark of the
 * Eclipse Foundation. All other trademarks are the property of their respective owners.
 */
package org.torquebox.mojo.rubygems;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * Simple convenient wrapper around SHA1 MessageDigest
 */
public class Sha1Digest {

  private final MessageDigest digest;

  /**
   * new Sha1Digest
   */
  public Sha1Digest() {
    try {
      digest = MessageDigest.getInstance("SHA1");
    } catch (NoSuchAlgorithmException e) {
      throw new RuntimeException("no SHA1 digest on system");
    }
  }

  /**
   * update the underlying digest
   * @param b byte to be updated
   */
  public void update(byte b) {
    digest.update(b);
  }

  /**
   * update the underlying digest
   * @param bytes to be updated
   */
  public void update(byte[] bytes) {
    digest.update(bytes);
  }

  /**
   * finalized the digest and produces a hex-dump
   * @return hex dump of the digest
   */
  public String hexDigest() {
    StringBuilder dig = new StringBuilder();
    for (byte b : digest.digest()) {
      if (b < 0) {
        dig.append(Integer.toHexString(256 + b));
      } else if (b < 16) {
        dig.append("0").append(Integer.toHexString(b));
      } else {
        dig.append(Integer.toHexString(b));
      }
    }
    return dig.toString();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy