package com.beowulfe.hap.impl.pairing; import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import com.nimbusds.srp6.SRP6CryptoParams; import com.nimbusds.srp6.SRP6ServerEvidenceContext; import com.nimbusds.srp6.ServerEvidenceRoutine; class ServerEvidenceRoutineImpl implements ServerEvidenceRoutine { @Override public BigInteger computeServerEvidence(SRP6CryptoParams cryptoParams, SRP6ServerEvidenceContext ctx) { MessageDigest digest; try { digest = MessageDigest.getInstance(cryptoParams.H); } catch (NoSuchAlgorithmException e) { throw new RuntimeException("Could not locate requested algorithm", e); } byte[] hS = digest.digest(SrpHandler.bigIntegerToUnsignedByteArray(ctx.S)); digest.update(SrpHandler.bigIntegerToUnsignedByteArray(ctx.A)); digest.update(SrpHandler.bigIntegerToUnsignedByteArray(ctx.M1)); digest.update(hS); return new BigInteger(1, digest.digest()); } }