/**
  * Compute an encrypted server public key signature using the Master Private Key.
  *
  * @param C_serverPublicKey Encrypted server public key.
  * @param masterPrivateKey Master Private Key.
  * @return Signature of the encrypted server public key.
  * @throws InvalidKeyException If master private key is invalid.
  */
 public byte[] computeServerPublicKeySignature(
     byte[] C_serverPublicKey, PrivateKey masterPrivateKey) throws InvalidKeyException {
   try {
     return signatureUtils.computeECDSASignature(C_serverPublicKey, masterPrivateKey);
   } catch (SignatureException ex) {
     Logger.getLogger(PowerAuthServerActivation.class.getName()).log(Level.SEVERE, null, ex);
   }
   return null;
 }
 /**
  * Generate signature for the activation data. Activation data are constructed as a concatenation
  * of activationIdShort and activationOTP, both values are separated with the "-" character:
  *
  * <p>activationData = activationIdShort + "_" + activationOTP
  *
  * <p>Signature is then computed using the master private key.
  *
  * @param activationIdShort Short activation ID.
  * @param activationOTP Activation OTP value.
  * @param masterPrivateKey Master Private Key.
  * @return Signature of activation data using Master Private Key.
  * @throws InvalidKeyException In case Master Private Key is invalid.
  */
 public byte[] generateActivationSignature(
     String activationIdShort, String activationOTP, PrivateKey masterPrivateKey)
     throws InvalidKeyException {
   try {
     byte[] bytes = (activationIdShort + "-" + activationOTP).getBytes("UTF-8");
     byte[] signature = signatureUtils.computeECDSASignature(bytes, masterPrivateKey);
     return signature;
   } catch (UnsupportedEncodingException | SignatureException ex) {
     Logger.getLogger(PowerAuthServerActivation.class.getName()).log(Level.SEVERE, null, ex);
   }
   return null;
 }