java.security.Signature.sign()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(9.6k)|赞(0)|评价(0)|浏览(402)

本文整理了Java中java.security.Signature.sign()方法的一些代码示例,展示了Signature.sign()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Signature.sign()方法的具体详情如下:
包路径:java.security.Signature
类名称:Signature
方法名:sign

Signature.sign介绍

[英]Generates and returns the signature of all updated data.

This Signature instance is reset to the state of its last initialization for signing and thus can be used for another signature from the same identity.
[中]生成并返回所有更新数据的签名。
此签名实例将重置为其上次签名初始化的状态,因此可以用于来自同一身份的另一个签名。

代码示例

代码示例来源:origin: prestodb/presto

public byte[] sign(SignatureAlgorithmIdentifier signatureAlgorithmIdentifier, PrivateKey privateKey)
    throws GeneralSecurityException
{
  Signature signature = Signature.getInstance(signatureAlgorithmIdentifier.getName());
  signature.initSign(privateKey);
  signature.update(getEncoded());
  return signature.sign();
}

代码示例来源:origin: prestodb/presto

private static boolean matches(PrivateKey privateKey, Certificate certificate)
{
  try {
    PublicKey publicKey = certificate.getPublicKey();
    Signature signer = createSignature(privateKey, publicKey);
    signer.initSign(privateKey);
    signer.update(TEST_SIGNATURE_DATA);
    byte[] signature = signer.sign();
    signer.initVerify(publicKey);
    signer.update(TEST_SIGNATURE_DATA);
    return signer.verify(signature);
  }
  catch (GeneralSecurityException ignored) {
    return false;
  }
}

代码示例来源:origin: pxb1988/dex2jar

Signature signature = Signature.getInstance(signAlg);
signature.initSign(privateKey);
je = new JarEntry("META-INF/CERT.SF");
je.setTime(timestamp);
outputJar.putNextEntry(je);
writeSignatureBlock(signature.sign(), outputJar);

代码示例来源:origin: wildfly/wildfly

private static String getEncodedSignature(PrivateKey privateKey, Signature signature, String encodedProtectedHeader, String encodedPayload) throws AcmeException {
  final byte[] signatureBytes;
  try {
    signature.update((encodedProtectedHeader + "." + encodedPayload).getBytes(StandardCharsets.UTF_8));
    signatureBytes = signature.sign();
    if (privateKey instanceof ECPrivateKey) {

代码示例来源:origin: Javen205/IJPay

/**
 * @param privateKey
 * @param data
 * @return
 * @throws Exception
 */
public static byte[] signBySoft256(PrivateKey privateKey, byte[] data)
    throws Exception {
  byte[] result = null;
  Signature st = Signature.getInstance(BC_PROV_ALGORITHM_SHA256RSA, "BC");
  st.initSign(privateKey);
  st.update(data);
  result = st.sign();
  return result;
}

代码示例来源:origin: jwtk/jjwt

protected byte[] doSign(byte[] data) throws InvalidKeyException, java.security.SignatureException {
  PrivateKey privateKey = (PrivateKey)key;
  Signature sig = createSignatureInstance();
  sig.initSign(privateKey);
  sig.update(data);
  return sig.sign();
}

代码示例来源:origin: aws/aws-sdk-java

/**
 * Signs the data given with the private key given, using the SHA1withRSA
 * algorithm provided by bouncy castle.
 */
public static byte[] signWithSha1RSA(byte[] dataToSign,
    PrivateKey privateKey) throws InvalidKeyException {
  Signature signature;
  try {
    signature = Signature.getInstance("SHA1withRSA");
    signature.initSign(privateKey, srand);
    signature.update(dataToSign);
    return signature.sign();
  } catch (NoSuchAlgorithmException e) {
    throw new IllegalStateException(e);
  } catch (SignatureException e) {
    throw new IllegalStateException(e);
  }
}

代码示例来源:origin: kaaproject/kaa

/**
 * Sign message using private key.
 *
 * @param message the message
 * @return the byte[]
 * @throws GeneralSecurityException the general security exception
 */
public byte[] sign(byte[] message) throws GeneralSecurityException {
 Signature signer = SHA1WITH_RSA_SIGNATURE.get();
 signer.initSign(privateKey);
 signer.update(message);
 return signer.sign();
}

代码示例来源:origin: jenkinsci/jenkins

/**
 * Used in conjunction with {@link #verifyIdentity(byte[])} to prove
 * that we actually own the private key of the given key pair.
 */
public void proveIdentity(byte[] sharedSecret, KeyPair key) throws IOException, GeneralSecurityException {
  String algorithm = detectKeyAlgorithm(key);
  writeUTF(algorithm);
  writeKey(key.getPublic());
  Signature sig = Signature.getInstance("SHA1with"+algorithm);
  sig.initSign(key.getPrivate());
  sig.update(key.getPublic().getEncoded());
  sig.update(sharedSecret);
  writeObject(sig.sign());
}

代码示例来源:origin: looly/hutool

/**
 * 用私钥对信息生成数字签名
 * 
 * @param data 加密数据
 * @return 签名
 */
public byte[] sign(byte[] data) {
  lock.lock();
  try {
    signature.initSign(this.privateKey);
    signature.update(data);
    return signature.sign();
  } catch (Exception e) {
    throw new CryptoException(e);
  } finally {
    lock.unlock();
  }
}

代码示例来源:origin: auth0/java-jwt

/**
   * Create signature using a private key.
   *
   * @param algorithm algorithm name.
   * @param privateKey the private key to use for signing.
   * @param contentBytes the content to be signed.
   * @return the signature bytes.
   * @throws NoSuchAlgorithmException if the algorithm is not supported.
   * @throws InvalidKeyException if the given key is inappropriate for initializing the specified algorithm.
   * @throws SignatureException if this signature object is not initialized properly or if this signature algorithm is unable to process the input data provided.
   * @deprecated rather use corresponding method which takes header and payload as separate inputs
   */

  @Deprecated
  byte[] createSignatureFor(String algorithm, PrivateKey privateKey, byte[] contentBytes) throws NoSuchAlgorithmException, InvalidKeyException, SignatureException {
    final Signature s = Signature.getInstance(algorithm);
    s.initSign(privateKey);
    s.update(contentBytes);
    return s.sign();
  }
}

代码示例来源:origin: looly/hutool

/**
 * 用私钥对信息生成数字签名
 * 
 * @param data 加密数据
 * @return 签名
 */
public byte[] sign(byte[] data) {
  lock.lock();
  try {
    signature.initSign(this.privateKey);
    signature.update(data);
    return signature.sign();
  } catch (Exception e) {
    throw new CryptoException(e);
  } finally {
    lock.unlock();
  }
}

代码示例来源:origin: Javen205/IJPay

/**
 * 
 * @param privateKey
 * @param data
 * @return
 * @throws Exception
 */
public static byte[] signBySoft(PrivateKey privateKey, byte[] data)
    throws Exception {
  byte[] result = null;
  Signature st = Signature.getInstance(BC_PROV_ALGORITHM_SHA1RSA, "BC");
  st.initSign(privateKey);
  st.update(data);
  result = st.sign();
  return result;
}

代码示例来源:origin: jwtk/jjwt

protected byte[] doSign(byte[] data) throws InvalidKeyException, java.security.SignatureException, JwtException {
    PrivateKey privateKey = (PrivateKey)key;
    Signature sig = createSignatureInstance();
    sig.initSign(privateKey);
    sig.update(data);
    return transcodeSignatureToConcat(sig.sign(), getSignatureByteArrayLength(alg));
  }
}

代码示例来源:origin: jenkinsci/jenkins

/**
 * Sign a message and base64 encode the signature.
 */
public String sign(String msg) {
  try {
    RSAPrivateKey key = getPrivateKey();
    Signature sig = Signature.getInstance(SIGNING_ALGORITHM + "with" + key.getAlgorithm());
    sig.initSign(key);
    sig.update(msg.getBytes("UTF-8"));
    return hudson.remoting.Base64.encode(sig.sign());
  } catch (GeneralSecurityException e) {
    throw new SecurityException(e);
  } catch (UnsupportedEncodingException e) {
    throw new AssertionError(e);    // UTF-8 is mandatory
  }
}

代码示例来源:origin: robovm/robovm

signingEngine.initSign(signingKey);
thealgorithm = signingEngine.getAlgorithm();
signingEngine.update(content);
signature = signingEngine.sign();

代码示例来源:origin: auth0/java-jwt

/**
 * Create signature for JWT header and payload using a private key.
 *
 * @param algorithm algorithm name.
 * @param privateKey the private key to use for signing.
 * @param headerBytes JWT header.
 * @param payloadBytes JWT payload.
 * @return the signature bytes.
 * @throws NoSuchAlgorithmException if the algorithm is not supported.
 * @throws InvalidKeyException if the given key is inappropriate for initializing the specified algorithm.
 * @throws SignatureException if this signature object is not initialized properly or if this signature algorithm is unable to process the input data provided.
 */
byte[] createSignatureFor(String algorithm, PrivateKey privateKey, byte[] headerBytes, byte[] payloadBytes) throws NoSuchAlgorithmException, InvalidKeyException, SignatureException {
  final Signature s = Signature.getInstance(algorithm);
  s.initSign(privateKey);
  s.update(headerBytes);
  s.update(JWT_PART_SEPARATOR);
  s.update(payloadBytes);
  return s.sign();
}

代码示例来源:origin: oracle/helidon

@Override
public byte[] doSign(byte[] bytesToSign) {
  String alg = signatureAlgorithm();
  if (ALG_NONE.equals(alg)) {
    return EMPTY_BYTES;
  }
  Signature signature = JwtUtil.getSignature(alg);
  try {
    PrivateKey privateKey = this.privateKey
        .orElseThrow(() -> new JwtException("To sign data, private key MUST be present"));
    signature.initSign(privateKey);
    signature.update(bytesToSign);
    return signature.sign();
  } catch (Exception e) {
    throw new JwtException("Failed to sign data", e);
  }
}

代码示例来源:origin: loklak/loklak_server

public static void addSignature(Map<String, byte[]> obj, PrivateKey key) throws InvalidKeyException, SignatureException {
  removeSignature(obj);
  Signature signature;
  try {
    signature = Signature.getInstance("SHA256withRSA");
  } catch (NoSuchAlgorithmException e) {
    return; //does not happen
  }
  signature.initSign(key);
  signature.update(obj.toString().getBytes(StandardCharsets.UTF_8));
  byte[] sigBytes = signature.sign();
  obj.put(signatureString, Base64.getEncoder().encode(sigBytes));
}

代码示例来源:origin: MovingBlocks/Terasology

/**
 * Generates a self-signed certificate. These are used to identify servers.
 *
 * @return A matched pair of public and private certificates.
 */
public CertificatePair generateSelfSigned() {
  keyPairGenerator.initialize(KEY_SIZE);
  KeyPair kp = keyPairGenerator.genKeyPair();
  try {
    RSAPublicKeySpec pub = keyFactory.getKeySpec(kp.getPublic(), RSAPublicKeySpec.class);
    RSAPrivateKeySpec priv = keyFactory.getKeySpec(kp.getPrivate(), RSAPrivateKeySpec.class);
    String uuid = UUID.randomUUID().toString();
    signer.initSign(kp.getPrivate(), new SecureRandom());
    signer.update(uuid.getBytes(Charsets.UTF_8));
    signer.update(pub.getModulus().toByteArray());
    signer.update(pub.getPublicExponent().toByteArray());
    byte[] rawSig = signer.sign();
    BigInteger signature = new BigInteger(rawSig);
    PublicIdentityCertificate publicCert = new PublicIdentityCertificate(uuid, pub.getModulus(), pub.getPublicExponent(), signature);
    PrivateIdentityCertificate privateCert = new PrivateIdentityCertificate(priv.getModulus(), priv.getPrivateExponent());
    return new CertificatePair(publicCert, privateCert);
  } catch (InvalidKeySpecException | SignatureException | InvalidKeyException e) {
    throw new RuntimeException("Unexpected exception generating certificate", e);
  }
}

相关文章