@SuppressWarnings("MixedMutabilityReturnType")
    private static List<SignedCertificateTimestamp> getSCTsFromSCTList(
            byte[] data, SignedCertificateTimestamp.Origin origin) {
        if (data == null) {
            return Collections.emptyList();
        }

        byte[][] sctList;
        try {
            sctList = Serialization.readList(
                    data, Constants.SCT_LIST_LENGTH_BYTES, Constants.SERIALIZED_SCT_LENGTH_BYTES);
        } catch (SerializationException e) {
            return Collections.emptyList();
        }

        List<SignedCertificateTimestamp> scts = new ArrayList<SignedCertificateTimestamp>();
        for (byte[] encodedSCT : sctList) {
            try {
                SignedCertificateTimestamp sct =
                        SignedCertificateTimestamp.decode(encodedSCT, origin);
                scts.add(sct);
            } catch (SerializationException e) {
                // Ignore errors
            }
        }

        return scts;
    }
Parse an encoded SignedCertificateTimestampList into a list of SignedCertificateTimestamp
instances, as described by RFC6962.
Individual SCTs which fail to be parsed are skipped. If the data is null, or the encompassing
list fails to be parsed, an empty list is returned.
@param origin used to create the SignedCertificateTimestamp instances.
common/src/main/java/org/conscrypt/ct/Verifier.java