Skip to main content
Glama
conanfile.py4.39 kB
#!/usr/bin/env python3 """ Conan recipe for OpenSSL FIPS Validator. This recipe packages the FIPS compliance validation framework for OpenSSL development with comprehensive security checks. """ from conan import ConanFile from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout from conan.tools.files import copy, get import os class OpenSSLFIPSValidatorConan(ConanFile): name = "openssl-fips-validator" version = "0.2.0" description = "FIPS 140-3 compliance validator for OpenSSL development" license = "MIT" url = "https://github.com/sparesparrow/openssl-fips-validator" homepage = "https://github.com/sparesparrow/openssl-fips-validator" topics = ("openssl", "fips", "compliance", "security", "validation", "cryptography") settings = "os", "compiler", "build_type", "arch" options = { "shared": [True, False], "fPIC": [True, False], "fips_level": ["1", "2", "3", "4"], "enable_side_channel_analysis": [True, False], } default_options = { "shared": False, "fPIC": True, "fips_level": "1", "enable_side_channel_analysis": True, } exports_sources = "CMakeLists.txt", "src/*", "include/*", "tests/*", "docs/*" def config_options(self): if self.settings.os == "Windows": del self.options.fPIC def configure(self): if self.options.shared: self.options.rm_safe("fPIC") def requirements(self): self.requires("openssl/3.1.4") self.requires("zlib/1.3") self.requires("boost/1.83.0") self.requires("gtest/1.14.0") # FIPS-specific requirements if self.options.fips_level in ["2", "3", "4"]: self.requires("hardware-security-module/1.0.0") if self.options.enable_side_channel_analysis: self.requires("valgrind/3.20.0") def build_requirements(self): self.tool_requires("cmake/3.27.7") self.tool_requires("ninja/1.11.1") self.tool_requires("gtest/1.14.0") def layout(self): cmake_layout(self) def generate(self): tc = CMakeToolchain(self) tc.variables["FIPS_LEVEL"] = self.options.fips_level tc.variables["ENABLE_SIDE_CHANNEL_ANALYSIS"] = self.options.enable_side_channel_analysis tc.generate() def build(self): cmake = CMake(self) cmake.configure() cmake.build() # Run tests if not cross-compiling if not self.conf.get("tools.cmake.cross_building", default=False): cmake.test() def package(self): copy(self, "*.h", dst=os.path.join(self.package_folder, "include"), src=os.path.join(self.source_folder, "include")) copy(self, "*.hpp", dst=os.path.join(self.package_folder, "include"), src=os.path.join(self.source_folder, "include")) copy(self, "*.lib", dst=os.path.join(self.package_folder, "lib"), src=self.build_folder, keep_path=False) copy(self, "*.dll", dst=os.path.join(self.package_folder, "bin"), src=self.build_folder, keep_path=False) copy(self, "*.so", dst=os.path.join(self.package_folder, "lib"), src=self.build_folder, keep_path=False) copy(self, "*.dylib", dst=os.path.join(self.package_folder, "lib"), src=self.build_folder, keep_path=False) copy(self, "*.a", dst=os.path.join(self.package_folder, "lib"), src=self.build_folder, keep_path=False) # Copy documentation copy(self, "docs/*", dst=os.path.join(self.package_folder, "docs"), src=self.source_folder) def package_info(self): self.cpp_info.libs = ["openssl_fips_validator"] self.cpp_info.defines = [f"FIPS_LEVEL={self.options.fips_level}"] if self.options.enable_side_channel_analysis: self.cpp_info.defines.append("ENABLE_SIDE_CHANNEL_ANALYSIS=1") if self.settings.os in ["Linux", "FreeBSD"]: self.cpp_info.system_libs = ["pthread", "dl"] elif self.settings.os == "Windows": self.cpp_info.system_libs = ["ws2_32", "crypt32"] # FIPS compliance information self.cpp_info.set_property("fips_compliant", True) self.cpp_info.set_property("fips_level", self.options.fips_level) self.cpp_info.set_property("security_validated", True)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sparesparrow/mcp-project-orchestrator'

If you have feedback or need assistance with the MCP directory API, please join our Discord server