private void createAndStoreSession(
     final PublicKey publicKey, final String clientId, final USER user, final byte[] certificate) {
   final Date expiresAt = getExpiryDateCalculator().calculateFor(user);
   final PublicKeyWithMechanism publicKeyWithMechanism = new PublicKeyWithMechanism(publicKey);
   final SESSION session = getSessionStore().createTransient();
   session.setUserId(user.getUserId());
   session.setExpiresAt(expiresAt);
   session.setPublicKey(publicKeyWithMechanism.getValue());
   session.setMechanism(publicKeyWithMechanism.getMechanism().getName());
   session.setClientId(clientId);
   session.setCertificate(certificate);
   getSessionStore().save(session);
 }