def _get_value()

in keyper/__init__.py [0:0]


    def _get_value(self, value_name: str) -> Optional[str]:

        log.debug("Getting certificate value: %s", value_name)

        get_cert_command = [
            "openssl",
            "pkcs12",
            "-in",
            self.path,
            "-nokeys",
            "-passin",
            f"pass:{self.password}",
        ]

        try:
            with subprocess.Popen(
                get_cert_command,
                universal_newlines=True,
                stdout=subprocess.PIPE,
                stderr=subprocess.PIPE,
            ) as get_cert:

                openssl_command = ["openssl", "x509", "-noout", f"-{value_name}"]

                with subprocess.Popen(
                    openssl_command,
                    universal_newlines=True,
                    stdin=get_cert.stdout,
                    stdout=subprocess.PIPE,
                    stderr=subprocess.PIPE,
                ) as openssl:

                    if openssl.stdout is None:
                        raise subprocess.CalledProcessError(1, openssl_command, None, None)

                    value = openssl.stdout.read()

        except subprocess.CalledProcessError as ex:
            log.error("Failed to get value: %s", ex)
            return None

        value = value.strip()

        log.debug("Full value: %s", value)

        return value