public List<DirectEncryptedPseudonymType> provideDep(ProvideDEPsRequest request) throws BsnkException {
        try {
            return ((BSNKDEPPort) this.bindingProvider).bsnkProvideDEPs(request).getDirectEncryptedPseudonyms();
        } catch (SOAPFaultException ex) {
            if (ex.getCause().getMessage().equals("The signature or decryption was invalid")) {
                throw new BsnkException("SignatureValidationFault", ex.getCause().getMessage(), ex.getCause());
            }
            throw new BsnkException("BSNKProvideDEPFault", ex.getMessage(), ex);
        } catch (WebServiceException ex) {
            throw new BsnkException("Could not send bsnkProvidePPPPCAOptimized", ex.getCause().getMessage(),
                    ex.getCause());
        } catch (BSNKProvideDEPFault ex) {
            throw new BsnkException("BSNKProvideDEPFault", ex.getCause().getMessage(), ex.getCause());
        }
    }
@Test
    public void testRequestHasValidSignature() throws BsnkException {
        setupWireMock();

        client.provideDep(request);

        wireMockServer.verify(postRequestedFor(urlPathEqualTo("/bsnk_stub/provideDep")).withHeader("Content-Type",
                containing("xml")));
        ServeEvent serveEvent = wireMockServer.getAllServeEvents().get(0);
        String requestBody = new String(serveEvent.getRequest().getBody());
        SignatureValidator signatureValidator = new SignatureValidator(this.signingTruststore,
                this.signingTruststorePassword);

        try {
            signatureValidator.validate(requestBody);
        } catch (WSSecurityException ex) {
            fail("Signature was invalid");
        } catch (Exception ex) {
            fail(ex.getMessage());
        }
    }