my $wsa = XML::Compile::SOAP::WSA->new(version => '1.0'); my $wsdl = XML::Compile::WSDL11->new("some.wsdl"); my $wss = XML::Compile::SOAP::WSS->new(schema => $wsdl); my $cert_obj = Crypt::OpenSSL::X509->new_from_file($cert); my $token = XML::Compile::WSS::SecToken::X509v3->new ( certificate => $cert_obj,); my $sig = $wss->signature( schema => $wsdl, token => $token, sign_types=>['wsa:Action','wsa:To', 'wsu:Timestamp', 'wsa:MessageID','SOAP-ENV:Body'], signer=>DSIG_RSA_SHA1, public_key => $cert, private_key =>$cert_pk, );