{"id":18755812,"url":"https://github.com/kasperskylab/boringssl-kos","last_synced_at":"2025-07-19T06:04:14.258Z","repository":{"id":107847561,"uuid":"589521327","full_name":"KasperskyLab/boringssl-kos","owner":"KasperskyLab","description":"BoringSSL is a fork of OpenSSL that is designed to meet Google's needs.","archived":false,"fork":false,"pushed_at":"2025-07-17T16:37:37.000Z","size":178198,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-17T17:55:54.917Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KasperskyLab.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-01-16T10:13:22.000Z","updated_at":"2025-07-17T15:31:32.000Z","dependencies_parsed_at":"2025-05-20T13:58:28.610Z","dependency_job_id":null,"html_url":"https://github.com/KasperskyLab/boringssl-kos","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/KasperskyLab/boringssl-kos","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KasperskyLab%2Fboringssl-kos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KasperskyLab%2Fboringssl-kos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KasperskyLab%2Fboringssl-kos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KasperskyLab%2Fboringssl-kos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KasperskyLab","download_url":"https://codeload.github.com/KasperskyLab/boringssl-kos/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KasperskyLab%2Fboringssl-kos/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265895929,"owners_count":23845409,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T17:34:01.972Z","updated_at":"2025-07-19T06:04:14.251Z","avatar_url":"https://github.com/KasperskyLab.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BoringSSL adaptation for KasperskyOS\n\nThis project is an adaptation of the [BoringSSL library](https://github.com/google/boringssl) for KasperskyOS.\nThe project is based on a [commit](https://github.com/google/boringssl/commit/b9232f9e27e5668bc0414879dcdedb2a59ea75f2) and\nincludes 3 examples demonstrating the use of the BoringSSL library in KasperskyOS.\n\nBoringSSL library for KasperskyOS is based on the BoringSSL library, a fork of OpenSSL library.\nBoringSSL library for KasperskyOS is intended to provide security and encryption in network applications.\n\nFor more information about BoringSSL library, see the\n[README.md](https://github.com/google/boringssl/blob/master/README.md) file of this library.\n\nFor additional details on KasperskyOS, including its limitations and known issues, please refer to the\n[KasperskyOS Community Edition Online Help](https://click.kaspersky.com/?hl=en-us\u0026link=online_help\u0026pid=kos\u0026version=1.3\u0026customization=KCE\u0026helpid=community_edition).\n\n## Table of contents\n- [BoringSSL adaptation for KasperskyOS](#boringssl-adaptation-for-kasperskyos)\n  - [Table of contents](#table-of-contents)\n  - [Getting started](#getting-started)\n    - [Prerequisites](#prerequisites)\n    - [Building and installing](#building-and-installing)\n      - [BoringSSL library for KasperskyOS](#boringssl-library-for-kasperskyos)\n      - [Tests](#tests)\n  - [Usage](#usage)\n    - [Examples](#examples)\n    - [Tests](#tests-1)\n  - [Trademarks](#trademarks)\n  - [Contributing](#contributing)\n  - [Licensing](#licensing)\n\n## Getting started\n\n### Prerequisites\n\n1. [Install](https://click.kaspersky.com/?hl=en-us\u0026link=online_help\u0026pid=kos\u0026version=1.3\u0026customization=KCE\u0026helpid=sdk_install_and_remove) KasperskyOS Community Edition SDK. You can download the latest version of the KasperskyOS Community Edition for free from [os.kaspersky.com](https://os.kaspersky.com/development/). The minimum required version of KasperskyOS Community Edition SDK is 1.3. For more information, see [System requirements](https://click.kaspersky.com/?hl=en-us\u0026link=online_help\u0026pid=kos\u0026version=1.3\u0026customization=KCE\u0026helpid=system_requirements).\n1. Copy source files to your project directory. The examples of KasperskyOS-based solutions are located in the following directory:\n   ```\n   ./kos\n   ```\n1. To build and run unit tests for BoringSSL library for KasperskyOS, install the `golang` package by running the command:\n   ```sh\n   apt-get install -y golang\n   ```\n\n### Building and installing\n#### BoringSSL library for KasperskyOS\n\nThe BoringSSL library for KasperskyOS is built using the CMake build system, which is provided in the KasperskyOS Community Edition SDK.\n\nTo build and install the BoringSSL library, execute the `cross-build.sh` script located in the `./kos` directory. There are environment variables that affect the build and installation of the BoringSSL library:\n\n* `SDK_PREFIX` specifies the path to the installed version of the KasperskyOS Community Edition SDK. The value of this environment variable must be set.\n* `INSTALL_PREFIX` specifies the installation path of the library. If not specified, the library will be installed in the `./kos/install` directory.\n* `TARGET` specifies the target platform. (Currently only the `aarch64-kos` platform is supported.)\n\n\u003e [!WARNING]\n\u003e The KasperskyOS Community Edition SDK comes with pre-built OpenSSL library. It is strongly not recommended to install BoringSSL to the KasperskyOS SDK `sysroot-\u003cplatform\u003e` directory, as it will cause OpenSSL to malfunction and render it unusable.\n\nFor example, review the following command:\n```sh\n$ SDK_PREFIX=/opt/KasperskyOS-Community-Edition-\u003cversion\u003e INSTALL_PREFIX=/home/libs/BoringSSL-kos ./cross-build.sh\n```\nThe BoringSSL library is built and installed in the `/home/libs/BoringSSL-kos/` directory using the\nSDK toolchain found in the `/opt/KasperskyOS-Community-Edition-\u003cversion\u003e` path, where `version` is the\nlatest version number of the KasperskyOS Community Edition SDK.\n\nYou can also use the following options instead of or in addition to environment variables:\n\n* `-h, --help`\n\n  Help text.\n* `-s, --sdk SDK_PREFIX`\n\n  Path to the installed version of the KasperskyOS Community Edition SDK. The value specified\nin the `-s` option takes precedence over the value of the `SDK_PREFIX` environment variable.\n* `-i, --install INSTALL_PREFIX`\n\n  Directory where BoringSSL for KasperskyOS binary files are installed. The value specified in\nthe `-i` option takes precedence over the value of the `INSTALL_PREFIX` environment variable.\n\nFor example:\n```sh\n$ ./cross-build.sh -s /opt/KasperskyOS-Community-Edition-\u003cversion\u003e -i /opt/libs\n```\n\n[⬆ Back to Top](#table-of-contents)\n\n#### Tests\n\nThe BoringSSL library's [tests](src/third_party/googletest) have been adapted to run on KasperskyOS. The tests have the following limitations:\n\n* Unit tests for KasperskyOS are currently only available for QEMU.\n* Only IPv4 tests are compatible with KasperskyOS.\n* `RandTest.Fork` test is skipped due to the `fork` system call is not supported by KasperskyOS.\n\nTests use an out-of-source build. The build tree is situated in the generated `build_tests` subdirectory of the `kos` directory. For each test suite, a separate image will be created. As it can be taxing on disk space, the tests will run sequentially.\n\nThere are environment variables that affect the build and installation of the tests:\n\n* `SDK_PREFIX` specifies the path to the installed version of the KasperskyOS Community Edition SDK. The value of this environment variable must be set.\n* `TARGET` specifies the target platform. (Currently only the `aarch64-kos` platform is supported.)\n\nTo build and run the tests, go to the `./kos` directory and run the command:\n\n`$ [TARGET=\"aarch64-kos\"] ./run-tests.sh [-s SDK_PREFIX] [--help] [--list] [-n TEST_NAME_1] ... [-n TEST_NAME_N] [-t TIMEOUT] [-o OUT_PATH] [-j N_JOBS]`,\n\nwhere:\n\n* `-s, --sdk SDK_PREFIX`\n\n  Path to the installed version of the KasperskyOS Community Edition SDK. The value specified in the `-s` option takes precedence over the value of the `SDK_PREFIX` environment variable.\n* `-h, --help`\n\n  Help text.\n* `-l, --list`\n\n  List of tests that can be run.\n* `-n, --name TEST_NAME`\n\n  Test name to execute. The parameter can be repeated multiple times. If not specified, all tests will be executed.\n* `-t, --timeout TIMEOUT`\n\n  Time, in seconds, allotted to start and execute a single test case. Default value is 300 seconds.\n* `-o, --out OUT_PATH`\n\n  Path where the results of the test run will be stored. If not specified, the results will be stored in the `./kos/build_tests/logs` directory.\n* `-j, --jobs N_JOBS`\n\n  Number of jobs for parallel build. If not specified, the default value obtained from the `nproc` command is used.\n\nFor example, to start executing all tests, use the following command:\n```\n$ SDK_PREFIX=/opt/KasperskyOS-Community-Edition-\u003cversion\u003e ./run-tests.sh\n```\n\n[⬆ Back to Top](#table-of-contents)\n\n## Usage\n\nTo include the BoringSSL library in a KasperskyOS-based solution, there are three recommended options: using the library source code as a git submodule, using the previously installed BoringSSL library, or using the CMake module `FetchContent`. Each project example demonstrates one of these methods.\n\nWhen you develop a KasperskyOS-based solution, use the [recommended structure of project directories](https://click.kaspersky.com/?hl=en-us\u0026link=online_help\u0026pid=kos\u0026version=1.3\u0026customization=KCE\u0026helpid=cmake_using_sdk_cmake) to simplify usage of CMake scripts.\n\n### Examples\n\n* [`./kos/examples/common/`](kos/examples/common/)—Common source code for all examples that calculates the SHA256 hash for the `Test Message Hello World` message.\n* [`./kos/examples/use_as_submodule/`](kos/examples/use_as_submodule/)—Example of using the BoringSSL library source code as a git submodule.\n* [`./kos/examples/use_installed/`](kos/examples/use_installed/)—Example of using the previously installed BoringSSL library.\n* [`./kos/examples/use_with_fetch_content/`](kos/examples/use_with_fetch_content/)—Example of using the CMake module `FetchContent`.\n\n### Tests\n\n[`./kos/run-tests.sh`](kos/run-tests.sh)—Script runs unit tests using the GoogleTest framework.\n\n[⬆ Back to Top](#table-of-contents)\n\n## Trademarks\n\nRegistered trademarks and endpoint marks are the property of their respective owners.\n\nAMD, AMD64, Opteron are trademarks or a registered trademarks of Advanced Micro Devices, Inc.\n\nAndroid, Chrome, Chromium, Dalvik, Google, GoogleTest, Google Code, Nexus are trademarks of Google LLC.\n\nApple, macOS, Mac OS, Xcode, MacTest, OS X, Tiger, iPhone are trademarks of Apple Inc.\n\nArm is a registered trademark of Arm Limited (or its subsidiaries) in the US and/or elsewhere.\n\nAtom, Core, Intel, Itanium, Pentium, XMM, MMX, Xeon are trademarks of Intel Corporation or its subsidiaries.\n\nF5 is a trademark of F5 Networks, Inc. in the U.S. and in certain other countries.\n\nFirefox, Mozilla are trademarks of the Mozilla Foundation in the U.S. and other countries.\n\nFreeBSD is a registered trademark of The FreeBSD Foundation.\n\nIBM, s3, POWER, POWER8, PowerPC, WebSphere, z/OS, z10, z9 are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide.\n\nLinux is the registered trademark of Linus Torvalds in the U.S. and other countries.\n\nMicrosoft, MSDN, Visual C++, Visual Studio, Win32, Windows, Windows Mobile, Windows Store are trademarks of the Microsoft group of companies.\n\nNokia is registered trademark of Nokia Corporation.\n\nPython is a trademark or registered trademark of the Python Software Foundation.\n\nUNIX is a registered trademark in the United States and other countries, licensed exclusively through X/Open Company Limited.\n\nIOS is a registered trademark of Cisco Systems, Inc. and/or its affiliates in the United States and certain other countries.\n\nOpenSSL is a trademark owned by the OpenSSL Software Foundation.\n\nBoringSSL adaptation for KasperskyOS is not affiliated with OpenSSL.\n\nRaspberry Pi is a trademark of the Raspberry Pi Foundation.\n\n## Contributing\n\nOnly KasperskyOS-specific changes can be approved. See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed instructions on code contribution.\n\n## Licensing\n\nThis project is licensed under the terms of the OpenSSL License. See [LICENSE](LICENSE) for more information.\n\n[⬆ Back to Top](#table-of-contents)\n\n© 2025 AO Kaspersky Lab\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkasperskylab%2Fboringssl-kos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkasperskylab%2Fboringssl-kos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkasperskylab%2Fboringssl-kos/lists"}