Welcome to mirror list, hosted at ThFree Co, Russian Federation.

Sha1WithRsa.scala « crypto « savage « getbootstrap « com « scala « main « src - github.com/twbs/savage.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: c01afee7e2440842117a33f05347aac246301e47 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package com.getbootstrap.savage.crypto

import java.security.Signature
import java.security.SignatureException
import java.security.InvalidKeyException


object Sha1WithRsa {
  private val signatureAlgorithmName = "SHA1withRSA" // Supported in all spec-compliant JVMs
  private def newSignatureVerifier(): Signature = Signature.getInstance(signatureAlgorithmName)

  def verifySignature(signature: Array[Byte], publicKey: RsaPublicKey, signedData: Array[Byte]): SignatureVerificationStatus = {
    val verifier = newSignatureVerifier()
    try {
      verifier.initVerify(publicKey.publicKey)
      verifier.update(signedData)
      verifier.verify(signature) match {
        case true => SuccessfullyVerified
        case false => FailedVerification
      }
    }
    catch {
      case keyExc:InvalidKeyException => ExceptionDuringVerification(keyExc)
      case sigExc:SignatureException => ExceptionDuringVerification(sigExc)
    }
  }
}