SDIFTP - firma pkcs7 Java Bouncy Castle

Buongiorno,

sto avendo tante difficoltà nella firma del file da depositare (previa cifratura) su sftp.
Il mio tool utilizza Bouncy Castle per la firma e la cifratura ma SOGEI mi dice che cifratura è OK ma verifica firma fallisce.

La cosa strana è che verificando il file firmato così come da loro procedura, la firma risulta verificata

openssl smime -verify -in signature.p7m -inform der -binary -out verificato -CAfile CAEntrate.pem

qualcuno ha avuto esperienza in merito? Siete riusciti ad utilizzare BouncyCastle?

di seguito lo snippet usato

    public static byte[] signData(byte[] data, X509Certificate signingCertificate, PrivateKey signingKey)
            throws EncryptionException {
        Validate.notNull(data);
        Validate.notNull(signingCertificate);
        Validate.notNull(signingKey);

        List<X509Certificate> certList = new ArrayList<>();
        CMSTypedData cmsData = new CMSProcessableByteArray(data);
        certList.add(signingCertificate);
        JcaCertStore certs;
        try {
            certs = new JcaCertStore(certList);
        } catch (CertificateEncodingException e) {
            throw new EncryptionException(e);
        }

        CMSSignedDataGenerator cmsGenerator = new CMSSignedDataGenerator();
        ContentSigner contentSigner;
        try {
            contentSigner = new JcaContentSignerBuilder("SHA256withRSA").build(signingKey);
            cmsGenerator.addSignerInfoGenerator(
                    new JcaSignerInfoGeneratorBuilder(new JcaDigestCalculatorProviderBuilder()
                                    .setProvider(new BouncyCastleProvider())
                                    .build())
                            .build(contentSigner, signingCertificate));
            cmsGenerator.addCertificates(certs);
            CMSSignedData cms = cmsGenerator.generate(cmsData, true);
            return cms.getEncoded();
        } catch (OperatorCreationException | CMSException | IOException | CertificateEncodingException e) {
            throw new EncryptionException(e);
        }
    }