Showing preview only (7,455K chars total). Download the full file or copy to clipboard to get everything.
Repository: dkopecek/usbguard
Branch: main
Commit: 90f0b502538e
Files: 468
Total size: 6.8 MB
Directory structure:
gitextract__08spewc/
├── .gitattributes
├── .github/
│ ├── dependabot.yml
│ └── workflows/
│ ├── build.yml
│ ├── docker.yml
│ └── polkit.yml
├── .gitignore
├── .gitmodules
├── .lgtm.yml
├── CHANGELOG.md
├── LICENSE
├── Makefile.am
├── README.adoc
├── RELEASE_PROCESS.md
├── VERSION
├── abi-ref/
│ └── libusbguard.so.abi
├── autogen.sh
├── configure.ac
├── doc/
│ └── man/
│ ├── .gitignore
│ ├── example-allow-device.adoc
│ ├── example-initial-policy.adoc
│ ├── footer.adoc
│ ├── usbguard-daemon.8.adoc
│ ├── usbguard-daemon.conf.5.adoc
│ ├── usbguard-dbus.8.adoc
│ ├── usbguard-ldap.conf.5.adoc
│ ├── usbguard-rules.conf.5.adoc
│ └── usbguard.1.adoc
├── libusbguard.pc.in
├── m4/
│ ├── ax_check_compile_flag.m4
│ ├── ax_pthread.m4
│ └── libgcrypt.m4
├── scripts/
│ ├── astyle.sh
│ ├── bash_completion/
│ │ └── usbguard
│ ├── copr-build-srpm.sh
│ ├── docker/
│ │ ├── build_on_alpine_linux_3_21.Dockerfile
│ │ ├── build_on_centos_8_2.Dockerfile
│ │ ├── build_on_debian_buster_with_gcc_9_2.Dockerfile
│ │ ├── build_on_ubuntu_22_04.Dockerfile
│ │ └── build_on_ubuntu_25_04.Dockerfile
│ ├── ldap/
│ │ ├── ldap.sh
│ │ ├── schema2ldif.pl
│ │ ├── setup.ldif
│ │ ├── usbguard-policy.ldif
│ │ ├── usbguard.ldif
│ │ └── usbguard.schema
│ ├── modeline.vim
│ ├── reformat-sources.sh
│ ├── rule-generator.sh
│ ├── usb-descriptor-collect.sh
│ └── usbguard-zsh-completion
├── src/
│ ├── .gitignore
│ ├── CLI/
│ │ ├── IPCSignalWatcher.cpp
│ │ ├── IPCSignalWatcher.hpp
│ │ ├── PolicyGenerator.cpp
│ │ ├── PolicyGenerator.hpp
│ │ ├── usbguard-add-user.cpp
│ │ ├── usbguard-add-user.hpp
│ │ ├── usbguard-allow-device.cpp
│ │ ├── usbguard-allow-device.hpp
│ │ ├── usbguard-append-rule.cpp
│ │ ├── usbguard-append-rule.hpp
│ │ ├── usbguard-apply-device-policy.cpp
│ │ ├── usbguard-apply-device-policy.hpp
│ │ ├── usbguard-block-device.cpp
│ │ ├── usbguard-block-device.hpp
│ │ ├── usbguard-generate-policy.cpp
│ │ ├── usbguard-generate-policy.hpp
│ │ ├── usbguard-get-parameter.cpp
│ │ ├── usbguard-get-parameter.hpp
│ │ ├── usbguard-list-devices.cpp
│ │ ├── usbguard-list-devices.hpp
│ │ ├── usbguard-list-rules.cpp
│ │ ├── usbguard-list-rules.hpp
│ │ ├── usbguard-print-version.cpp
│ │ ├── usbguard-print-version.hpp
│ │ ├── usbguard-read-descriptor.cpp
│ │ ├── usbguard-read-descriptor.hpp
│ │ ├── usbguard-reject-device.cpp
│ │ ├── usbguard-reject-device.hpp
│ │ ├── usbguard-remove-rule.cpp
│ │ ├── usbguard-remove-rule.hpp
│ │ ├── usbguard-remove-user.cpp
│ │ ├── usbguard-remove-user.hpp
│ │ ├── usbguard-rule-parser.cpp
│ │ ├── usbguard-set-parameter.cpp
│ │ ├── usbguard-set-parameter.hpp
│ │ ├── usbguard-watch.cpp
│ │ ├── usbguard-watch.hpp
│ │ ├── usbguard.cpp
│ │ └── usbguard.hpp
│ ├── Common/
│ │ ├── ByteOrder.hpp
│ │ ├── FDInputStream.hpp
│ │ ├── LDAPUtil.cpp
│ │ ├── LDAPUtil.hpp
│ │ ├── Thread.hpp
│ │ ├── Utility.cpp
│ │ └── Utility.hpp
│ ├── DBus/
│ │ ├── .gitignore
│ │ ├── DBusBridge.cpp
│ │ ├── DBusBridge.hpp
│ │ ├── DBusInterface.xml
│ │ ├── README.adoc
│ │ ├── gdbus-server.cpp
│ │ ├── generate-documentation.sh
│ │ ├── org.usbguard1.conf
│ │ ├── org.usbguard1.policy
│ │ ├── org.usbguard1.service.in
│ │ └── usbguard-dbus.service.in
│ ├── Daemon/
│ │ ├── Daemon.cpp
│ │ ├── Daemon.hpp
│ │ ├── FileAuditBackend.cpp
│ │ ├── FileAuditBackend.hpp
│ │ ├── FileRuleSet.cpp
│ │ ├── FileRuleSet.hpp
│ │ ├── LDAPHandler.cpp
│ │ ├── LDAPHandler.hpp
│ │ ├── LDAPRuleSet.cpp
│ │ ├── LDAPRuleSet.hpp
│ │ ├── LinuxAuditBackend.cpp
│ │ ├── LinuxAuditBackend.hpp
│ │ ├── NSHandler.cpp
│ │ ├── NSHandler.hpp
│ │ ├── RuleSetFactory.cpp
│ │ ├── RuleSetFactory.hpp
│ │ ├── Seccomp.c
│ │ ├── Seccomp.h
│ │ └── main.cpp
│ ├── Library/
│ │ ├── AllowedMatchesCondition.cpp
│ │ ├── AllowedMatchesCondition.hpp
│ │ ├── Base64.cpp
│ │ ├── Base64.hpp
│ │ ├── ConfigFilePrivate.cpp
│ │ ├── ConfigFilePrivate.hpp
│ │ ├── DeviceBase.cpp
│ │ ├── DeviceBase.hpp
│ │ ├── DeviceManagerBase.cpp
│ │ ├── DeviceManagerBase.hpp
│ │ ├── DeviceManagerPrivate.cpp
│ │ ├── DeviceManagerPrivate.hpp
│ │ ├── DevicePrivate.cpp
│ │ ├── DevicePrivate.hpp
│ │ ├── FixedStateCondition.cpp
│ │ ├── FixedStateCondition.hpp
│ │ ├── Hash.cpp
│ │ ├── Hash.hpp
│ │ ├── IPC/
│ │ │ ├── .gitignore
│ │ │ ├── Devices.proto
│ │ │ ├── Exception.proto
│ │ │ ├── Message.proto
│ │ │ ├── Parameter.proto
│ │ │ ├── Policy.proto
│ │ │ └── Rule.proto
│ │ ├── IPCClientPrivate.cpp
│ │ ├── IPCClientPrivate.hpp
│ │ ├── IPCPrivate.cpp
│ │ ├── IPCPrivate.hpp
│ │ ├── IPCServerPrivate.cpp
│ │ ├── IPCServerPrivate.hpp
│ │ ├── Init.cpp
│ │ ├── KeyValueParserPrivate.cpp
│ │ ├── KeyValueParserPrivate.hpp
│ │ ├── LocaltimeCondition.cpp
│ │ ├── LocaltimeCondition.hpp
│ │ ├── RandomStateCondition.cpp
│ │ ├── RandomStateCondition.hpp
│ │ ├── RuleAppliedCondition.cpp
│ │ ├── RuleAppliedCondition.hpp
│ │ ├── RuleEvaluatedCondition.cpp
│ │ ├── RuleEvaluatedCondition.hpp
│ │ ├── RuleParser/
│ │ │ ├── Actions.hpp
│ │ │ └── Grammar.hpp
│ │ ├── RulePrivate.cpp
│ │ ├── RulePrivate.hpp
│ │ ├── SysFSDevice.cpp
│ │ ├── SysFSDevice.hpp
│ │ ├── UEvent.cpp
│ │ ├── UEvent.hpp
│ │ ├── UEventDeviceManager.cpp
│ │ ├── UEventDeviceManager.hpp
│ │ ├── UEventParser.cpp
│ │ ├── UEventParser.hpp
│ │ ├── UMockdevDeviceDefinition.cpp
│ │ ├── UMockdevDeviceDefinition.hpp
│ │ ├── UMockdevDeviceManager.cpp
│ │ ├── UMockdevDeviceManager.hpp
│ │ ├── Utility.cpp
│ │ ├── Utility.hpp
│ │ └── public/
│ │ └── usbguard/
│ │ ├── Audit.cpp
│ │ ├── Audit.hpp
│ │ ├── ConfigFile.cpp
│ │ ├── ConfigFile.hpp
│ │ ├── Device.cpp
│ │ ├── Device.hpp
│ │ ├── DeviceManager.cpp
│ │ ├── DeviceManager.hpp
│ │ ├── DeviceManagerHooks.cpp
│ │ ├── DeviceManagerHooks.hpp
│ │ ├── Exception.hpp
│ │ ├── IPCClient.cpp
│ │ ├── IPCClient.hpp
│ │ ├── IPCServer.cpp
│ │ ├── IPCServer.hpp
│ │ ├── Interface.hpp
│ │ ├── KeyValueParser.cpp
│ │ ├── KeyValueParser.hpp
│ │ ├── Logger.cpp
│ │ ├── Logger.hpp
│ │ ├── MemoryRuleSet.cpp
│ │ ├── MemoryRuleSet.hpp
│ │ ├── Policy.cpp
│ │ ├── Policy.hpp
│ │ ├── Predicates.hpp
│ │ ├── Rule.cpp
│ │ ├── Rule.hpp
│ │ ├── RuleCondition.cpp
│ │ ├── RuleCondition.hpp
│ │ ├── RuleParser.cpp
│ │ ├── RuleParser.hpp
│ │ ├── RuleSet.cpp
│ │ ├── RuleSet.hpp
│ │ ├── Typedefs.cpp
│ │ ├── Typedefs.hpp
│ │ ├── USB.cpp
│ │ ├── USB.hpp
│ │ ├── USBGuard.cpp
│ │ └── USBGuard.hpp
│ ├── Tests/
│ │ ├── .gitignore
│ │ ├── Fuzzers/
│ │ │ ├── Makefile.am
│ │ │ ├── fuzzer-rules.cpp
│ │ │ ├── fuzzer-uevent.cpp
│ │ │ └── fuzzer-usb-descriptor.cpp
│ │ ├── LDAP/
│ │ │ ├── Sanity/
│ │ │ │ └── ldap-nsswitch.sh
│ │ │ ├── UseCase/
│ │ │ │ ├── ldap-test-1.sh
│ │ │ │ ├── ldap-test-2.sh
│ │ │ │ ├── ldap-test-3.sh
│ │ │ │ ├── ldap-test-4.sh
│ │ │ │ └── ldap-test-5.sh
│ │ │ ├── ansible/
│ │ │ │ ├── hosts
│ │ │ │ ├── playbook.yml
│ │ │ │ └── roles/
│ │ │ │ └── bennojoy.openldap_server/
│ │ │ │ ├── README.md
│ │ │ │ ├── defaults/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── files/
│ │ │ │ │ ├── ldap
│ │ │ │ │ ├── slapd
│ │ │ │ │ └── slapd_fedora
│ │ │ │ ├── handlers/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── meta/
│ │ │ │ │ └── main.yml
│ │ │ │ ├── tasks/
│ │ │ │ │ ├── configure_ldap.yml
│ │ │ │ │ ├── install_ldap.yml
│ │ │ │ │ └── main.yml
│ │ │ │ ├── templates/
│ │ │ │ │ ├── domain.ldif
│ │ │ │ │ ├── ldap.conf.j2
│ │ │ │ │ ├── slapd.conf.j2
│ │ │ │ │ ├── slapd.conf_ubuntu.j2
│ │ │ │ │ ├── slapd.fedora.ldif.j2
│ │ │ │ │ └── slapd.ubuntu.ldif.j2
│ │ │ │ └── vars/
│ │ │ │ ├── Debian.yml
│ │ │ │ ├── RedHat.yml
│ │ │ │ └── main.yml
│ │ │ ├── ldap.sh
│ │ │ ├── nsswitch.sh
│ │ │ ├── setup.ldif
│ │ │ ├── usbguard-policy.ldif
│ │ │ ├── usbguard.ldif
│ │ │ └── usbguard.schema
│ │ ├── Makefile.am
│ │ ├── Regression/
│ │ │ ├── github-PR209-config-parser.cpp
│ │ │ ├── test_Rule_ghi113.cpp
│ │ │ ├── test_Rule_ghi247.cpp
│ │ │ └── test_Rule_ghi37.cpp
│ │ ├── Rules/
│ │ │ ├── test-rules.bad
│ │ │ ├── test-rules.file
│ │ │ ├── test-rules.good
│ │ │ └── test-rules.sh
│ │ ├── Source/
│ │ │ ├── CheckScripts/
│ │ │ │ ├── code-style.sh
│ │ │ │ ├── copyright.sh
│ │ │ │ ├── private-with-build-config.sh
│ │ │ │ ├── public-without-build-config.sh
│ │ │ │ ├── spell-check.rws
│ │ │ │ ├── spell-check.sh
│ │ │ │ └── vim-modeline.sh
│ │ │ └── check-driver.sh
│ │ ├── USB/
│ │ │ ├── data/
│ │ │ │ └── 0001.out
│ │ │ └── test-descriptor-parser.sh
│ │ ├── Unit/
│ │ │ ├── test_Base64.cpp
│ │ │ ├── test_IPCServer_AccessControl.cpp
│ │ │ ├── test_Rule.cpp
│ │ │ ├── test_RuleAttribute_id.cpp
│ │ │ ├── test_RuleParser.cpp
│ │ │ ├── test_UEvent.cpp
│ │ │ ├── test_UEventParser.cpp
│ │ │ ├── test_UMockdevDeviceDefinition.cpp
│ │ │ ├── test_UMockdevDeviceDefinition.data.hpp
│ │ │ └── test_Utility.cpp
│ │ ├── UseCase/
│ │ │ ├── 000_executable.sh
│ │ │ ├── 001_cli_policy.sh
│ │ │ ├── 002_cli_devices.sh
│ │ │ ├── 003_cli_devices_umockdev.sh
│ │ │ ├── 004_daemonize.sh
│ │ │ ├── 005_cli_devices_advanced.sh
│ │ │ └── devices.umockdev
│ │ ├── bash-testlib.sh
│ │ ├── custom.supp
│ │ └── main.cpp
│ ├── ThirdParty/
│ │ └── xsl-stylesheets/
│ │ ├── VERSION.xsl
│ │ ├── common/
│ │ │ ├── af.xml
│ │ │ ├── am.xml
│ │ │ ├── ar.xml
│ │ │ ├── as.xml
│ │ │ ├── ast.xml
│ │ │ ├── autoidx-kimber.xsl
│ │ │ ├── autoidx-kosek.xsl
│ │ │ ├── az.xml
│ │ │ ├── bg.xml
│ │ │ ├── bn.xml
│ │ │ ├── bn_in.xml
│ │ │ ├── bs.xml
│ │ │ ├── ca.xml
│ │ │ ├── charmap.xml
│ │ │ ├── charmap.xsl
│ │ │ ├── common.xml
│ │ │ ├── common.xsl
│ │ │ ├── cs.xml
│ │ │ ├── cy.xml
│ │ │ ├── da.xml
│ │ │ ├── de.xml
│ │ │ ├── el.xml
│ │ │ ├── en.xml
│ │ │ ├── entities.ent
│ │ │ ├── eo.xml
│ │ │ ├── es.xml
│ │ │ ├── et.xml
│ │ │ ├── eu.xml
│ │ │ ├── fa.xml
│ │ │ ├── fi.xml
│ │ │ ├── fr.xml
│ │ │ ├── ga.xml
│ │ │ ├── gentext.xsl
│ │ │ ├── gl.xml
│ │ │ ├── gu.xml
│ │ │ ├── he.xml
│ │ │ ├── hi.xml
│ │ │ ├── hr.xml
│ │ │ ├── hu.xml
│ │ │ ├── id.xml
│ │ │ ├── insertfile.xsl
│ │ │ ├── is.xml
│ │ │ ├── it.xml
│ │ │ ├── ja.xml
│ │ │ ├── ka.xml
│ │ │ ├── kn.xml
│ │ │ ├── ko.xml
│ │ │ ├── ky.xml
│ │ │ ├── l10n.dtd
│ │ │ ├── l10n.xml
│ │ │ ├── l10n.xsl
│ │ │ ├── la.xml
│ │ │ ├── labels.xsl
│ │ │ ├── lt.xml
│ │ │ ├── lv.xml
│ │ │ ├── ml.xml
│ │ │ ├── mn.xml
│ │ │ ├── mr.xml
│ │ │ ├── nb.xml
│ │ │ ├── nds.xml
│ │ │ ├── nl.xml
│ │ │ ├── nn.xml
│ │ │ ├── olink.xsl
│ │ │ ├── or.xml
│ │ │ ├── pa.xml
│ │ │ ├── pi.xml
│ │ │ ├── pi.xsl
│ │ │ ├── pl.xml
│ │ │ ├── pt.xml
│ │ │ ├── pt_br.xml
│ │ │ ├── refentry.xml
│ │ │ ├── refentry.xsl
│ │ │ ├── ro.xml
│ │ │ ├── ru.xml
│ │ │ ├── sk.xml
│ │ │ ├── sl.xml
│ │ │ ├── sq.xml
│ │ │ ├── sr.xml
│ │ │ ├── sr_Latn.xml
│ │ │ ├── stripns.xsl
│ │ │ ├── subtitles.xsl
│ │ │ ├── sv.xml
│ │ │ ├── ta.xml
│ │ │ ├── table.xsl
│ │ │ ├── targetdatabase.dtd
│ │ │ ├── targets.xsl
│ │ │ ├── te.xml
│ │ │ ├── th.xml
│ │ │ ├── titles.xsl
│ │ │ ├── tl.xml
│ │ │ ├── tr.xml
│ │ │ ├── uk.xml
│ │ │ ├── utility.xml
│ │ │ ├── utility.xsl
│ │ │ ├── vi.xml
│ │ │ ├── xh.xml
│ │ │ ├── zh.xml
│ │ │ ├── zh_cn.xml
│ │ │ └── zh_tw.xml
│ │ ├── lib/
│ │ │ ├── dumpfragment.xsl
│ │ │ └── lib.xsl
│ │ └── xhtml-1_1/
│ │ ├── admon.xsl
│ │ ├── annotations.xsl
│ │ ├── autoidx-kimber.xsl
│ │ ├── autoidx-kosek.xsl
│ │ ├── autoidx-ng.xsl
│ │ ├── autoidx.xsl
│ │ ├── autotoc.xsl
│ │ ├── biblio-iso690.xsl
│ │ ├── biblio.xsl
│ │ ├── block.xsl
│ │ ├── callout.xsl
│ │ ├── changebars.xsl
│ │ ├── chunk-changebars.xsl
│ │ ├── chunk-code.xsl
│ │ ├── chunk-common.xsl
│ │ ├── chunk.xsl
│ │ ├── chunker.xsl
│ │ ├── chunkfast.xsl
│ │ ├── chunktoc.xsl
│ │ ├── component.xsl
│ │ ├── division.xsl
│ │ ├── docbook.xsl
│ │ ├── ebnf.xsl
│ │ ├── footnote.xsl
│ │ ├── formal.xsl
│ │ ├── glossary.xsl
│ │ ├── graphics.xsl
│ │ ├── highlight.xsl
│ │ ├── html-rtf.xsl
│ │ ├── html.xsl
│ │ ├── htmltbl.xsl
│ │ ├── index.xsl
│ │ ├── info.xsl
│ │ ├── inline.xsl
│ │ ├── keywords.xsl
│ │ ├── lists.xsl
│ │ ├── maketoc.xsl
│ │ ├── manifest.xsl
│ │ ├── math.xsl
│ │ ├── oldchunker.xsl
│ │ ├── onechunk.xsl
│ │ ├── param.xsl
│ │ ├── pi.xsl
│ │ ├── profile-chunk-code.xsl
│ │ ├── profile-chunk.xsl
│ │ ├── profile-docbook.xsl
│ │ ├── profile-onechunk.xsl
│ │ ├── qandaset.xsl
│ │ ├── refentry.xsl
│ │ ├── sections.xsl
│ │ ├── synop.xsl
│ │ ├── table.xsl
│ │ ├── task.xsl
│ │ ├── titlepage.templates.xsl
│ │ ├── titlepage.xsl
│ │ ├── toc.xsl
│ │ ├── verbatim.xsl
│ │ └── xref.xsl
│ ├── astylerc
│ └── test_filesystem.cpp
├── usbguard-daemon.conf.in
├── usbguard-tmpfiles.conf
└── usbguard.service.in
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitattributes
================================================
src/ThirdParty/* linguist-vendored
================================================
FILE: .github/dependabot.yml
================================================
##
## Copyright (c) 2023 Sebastian Pipping <sebastian@pipping.org>
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
version: 2
updates:
- package-ecosystem: "github-actions"
commit-message:
include: "scope"
prefix: "Actions"
directory: "/"
labels:
- "enhancement"
schedule:
interval: "weekly"
================================================
FILE: .github/workflows/build.yml
================================================
name: C/C++ CI
on:
push:
pull_request:
schedule:
- cron: '0 4 * * 5' # Every Friday at 4am
# Drop permissions to minimum for security
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
config:
- {
name: "Ubuntu_GCC",
os: ubuntu-22.04,
cc: "gcc",
cxx: "g++",
crypto: "libgcrypt-dev"
}
- {
name: "Ubuntu_CLANG",
os: ubuntu-22.04,
cc: "clang",
cxx: "clang++",
crypto: "libgcrypt-dev",
configure_args: "--enable-asan"
}
- {
name: "Ubuntu_GCC",
os: ubuntu-22.04,
cc: "gcc",
cxx: "g++",
crypto: "libgcrypt-dev",
configure_args: "--without-ldap"
}
- {
name: "Ubuntu_GCC",
os: ubuntu-22.04,
cc: "gcc",
cxx: "g++",
crypto: "libgcrypt-dev",
configure_args: "--enable-debug-build"
}
- {
name: "Ubuntu_GCC",
os: ubuntu-22.04,
cc: "gcc",
cxx: "g++",
crypto: "libgcrypt-dev",
configure_args: "--enable-asan"
}
- {
name: "Ubuntu_GCC",
os: ubuntu-22.04,
cc: "gcc",
cxx: "g++",
crypto: "libgcrypt-dev",
configure_args: "--with-crypto-library=gcrypt"
}
- {
name: "Ubuntu_GCC",
os: ubuntu-22.04,
cc: "gcc",
cxx: "g++",
crypto: "libsodium-dev",
configure_args: "--with-crypto-library=sodium"
}
- {
name: "Ubuntu_GCC",
os: ubuntu-22.04,
cc: "gcc",
cxx: "g++",
crypto: "libssl-dev",
configure_args: "--with-crypto-library=openssl"
}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: installing dependencies
run: |
sudo apt-get -qq update
sudo apt-get install -y ansible
sudo apt-get install -y libudev-dev libsodium-dev libqb-dev libcap-ng-dev libseccomp-dev
sudo apt-get install -y libglib2.0-dev libdbus-glib-1-dev libxml2-utils libpolkit-gobject-1-dev xsltproc
sudo apt-get install -y lcov
sudo apt-get install -y aspell aspell-en
sudo apt-get install -y libprotobuf-dev protobuf-compiler
sudo apt-get install -y libldap-dev
sudo apt-get install -y valgrind
sudo apt-get install -y asciidoc docbook-xml docbook-xsl
sudo apt-get install -y umockdev libumockdev-dev
sudo gem install coveralls-lcov
sudo apt-get install -y ${{ matrix.config.cc }}
sudo apt-get install -y ${{ matrix.config.cxx }} || true
sudo apt-get install -y ${{ matrix.config.crypto }}
sudo apt-get install -y astyle
- name: setup environment
run: |
cd src/Tests/LDAP/ansible
ansible-playbook -i ./hosts -u root --connection=local playbook.yml
- name: build
run: |
./autogen.sh
mkdir build && cd build
${{ matrix.config.cc }} --version
${{ matrix.config.cxx }} --version
CC=${{ matrix.config.cc }} CXX=${{ matrix.config.cxx }} ../configure --enable-werror --disable-silent-rules --with-bundled-catch --with-bundled-pegtl --with-ldap --enable-full-test-suite ${{ matrix.config.configure_args }}
make "-j$(nproc)"
- name: install (off-system, for coverage)
run: |-
set -x -o pipefail
make -C build DESTDIR="${PWD}"/ROOT install
find ROOT/ -not -type d | sort | xargs ls -l
rm -Rf find ROOT/ # to not interfere with check-driver.sh
- name: check
run: sudo make -C build check -j1 || { find -name test-suite.log -print -exec cat {} \; ; false ; }
- name: distcheck
run: sudo make -C build distcheck -j1 || { find -name test-suite.log -print -exec cat {} \; ; false ; }
================================================
FILE: .github/workflows/docker.yml
================================================
##
## Copyright (c) 2022 Sebastian Pipping <sebastian@pipping.org>
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
name: Build on non-Ubuntu Linux using Docker
on:
push:
pull_request:
schedule:
- cron: '0 4 * * 5' # Every Friday at 4am
# Drop permissions to minimum for security
permissions:
contents: read
jobs:
build_docker:
strategy:
fail-fast: false
matrix:
linux_distro:
- Alpine Linux 3.21 # with musl
- CentOS 8.2 # with GCC 8.5.0
# - Debian Buster with GCC 9.2 # stock buster has GCC 8.3 - temporarily disabled
- Ubuntu 22.04 # because super popular
- Ubuntu 25.04 # because GCC 15+
name: Build on ${{ matrix.linux_distro }} using Docker
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Build on ${{ matrix.linux_distro }} using Docker
run: |
set -x
# Create tarballs used by Dockerfile
git submodule update --init
git archive -o usbguard.tar HEAD
( cd src/ThirdParty/PEGTL/ && git archive -o ../../../pegtl.tar HEAD )
( cd src/ThirdParty/Catch/ && git archive -o ../../../catch.tar HEAD )
# Build using Docker
linux_distro="$(tr '[:upper:]' '[:lower:]' <<<"${{ matrix.linux_distro }}" | sed 's,[ .],_,g')"
docker build -f scripts/docker/build_on_"${linux_distro}".Dockerfile .
================================================
FILE: .github/workflows/polkit.yml
================================================
##
## Copyright (c) 2022 Sebastian Pipping <sebastian@pipping.org>
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
name: Check for Polkit policy parse errors
on:
push:
pull_request:
schedule:
- cron: '0 4 * * 5' # Every Friday at 4am
# Drop permissions to minimum for security
permissions:
contents: read
jobs:
polkit_policies:
name: Check for Polkit policy parse errors
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Install runtime dependencies
run: |
set -x
sudo apt-get update
sudo apt-get install --no-install-recommends --yes -V expat
- name: Check for Polkit policy parse errors
run: |
# This will work around pkaction exiting with unjustified(?)
# code 1 on Ubuntu 20.04
check_polkit_action() { pkaction -v -a "$1" | tee /dev/stderr | fgrep -q 'implicit any' ; }
set -x
actions=(
org.usbguard.Devices1.listDevices
org.usbguard.Devices1.applyDevicePolicy
org.usbguard.Policy1.appendRule
org.usbguard.Policy1.listRules
org.usbguard.Policy1.removeRule
org.usbguard1.getParameter
org.usbguard1.setParameter
)
# Self-test: Assert that prior to installation, our Polkit "actions"
# are unknown to PolKit.
! check_polkit_action "${actions[0]}"
# Install the policy so that polkin can find it
xmlwf src/DBus/org.usbguard1.policy
sudo cp -v src/DBus/org.usbguard1.policy /usr/share/polkit-1/actions/
# Assert that after installation, all of our Polkit "actions" are known.
# This detects parse error regressions.
for action in "${actions[@]}"; do
check_polkit_action "${action}"
done
================================================
FILE: .gitignore
================================================
/libusbguard.pc
/usbguard
/usbguard-daemon
/usbguard-daemon.conf
/usbguard-dbus
/usbguard-rule-parser
Makefile
Makefile.in
.deps
.libs
libtool
configure
config/
config.log
config.status
build/
.dirstamp
.ycm_extra_conf.py
stamp-h1
test-driver
*~
*.sw[po]
*.l[oa]
*.o
aclocal.m4
autom4te.cache/
m4/libtool.m4
m4/ltoptions.m4
m4/ltsugar.m4
m4/ltversion.m4
m4/lt~obsolete.m4
src/build-config.h.in.in
================================================
FILE: .gitmodules
================================================
[submodule "src/ThirdParty/Catch"]
path = src/ThirdParty/Catch
url = https://github.com/philsquared/Catch
[submodule "src/ThirdParty/PEGTL"]
path = src/ThirdParty/PEGTL
url = https://github.com/ColinH/PEGTL
================================================
FILE: .lgtm.yml
================================================
# lgtm.yml configuration file for C/C++ analysis
# of USBGuard on lgtm.com:
# https://lgtm.com/projects/g/USBGuard/usbguard
extraction:
cpp:
prepare:
# Most Debian/Ubuntu package dependencies
# are automatically detected, but this one
# is not. The team at lgtm.com are looking
# into it.
packages:
- libdbus-glib-1-dev
after_prepare:
- ./autogen.sh
configure:
command: |-
${CC:-cc} --version
${CXX:-c++} --version
./configure --with-bundled-pegtl || { cat config.log ; false ; }
================================================
FILE: CHANGELOG.md
================================================
# Change Log
## 1.1.4 - 2025-07-15
### Fixed
- Add tmpfiles.d file for /var/log/usbguard
- Ignore errors from rmdir during uninstallation
- Fix regression when specifying IPC privileges using UID
- Fix support for loongarch
- Adapt for protobuf 3.0 API changes
- Add support for Catch2 v3
- new configure option --enable/disable-catch
- add FDStreamBuf destructor to stop fd leak
## 1.1.3 - 2024-06-06
### Fixed
- Addressed several cases where either RuleFile or RuleFolder was not set.
- Resolved a race condition during fork where the parent process did not wait until everything was initialized in the child process.
- Included missing documentation in the tarball.
- Fixed compatibility issues with GCC 13+.
### Added
- Implemented detection of integer overflow for device IDs to ensure that each device can be uniquely identified by a single ID.
- Enhanced the service file to disable the Linux kernel's Out-Of-Memory (OOM) killing of processes for this unit.
- D-bus: check if the client requested interactive authentication, as some clients do not prompt for passwords.
- Made minor adjustments to the documentation.
- RuleFolder is enabled by default. At startup, the path to folder must exist and be accessible by the daemon.
## 1.1.2 - 2022-09-02
### Fixed
- Polkit: Always allow getParameter/listDevices/listRules in active sessions
- D-Bus: Send reply on auth failure
- Polkit: Unreference PolkitAuthorizationResult and PolkitAuthority structs if needed
## 1.1.1 - 2022-03-15
### Fixed
- Restore support for access control filenames without a group
## 1.1.0 - 2022-02-24
### Added
- Started building with C++17
- Tree-like list-devices output
- Added CAP_AUDIT_WRITE capability to service file
- Added support for lower OpenSSL versions prior to 1.1.0
- Added a new signal: DevicePolicyApplied
### Fixed/Changed
- Moved PIDFile from /var/run to /run
- Fixed linker isssues with disable-static
- Enhanced bash-completion script
- Make username/group checking consistent with useradd manual page definition
(with addition of capital letters)
- Fixed multiple IPC related bugs
- Fixed race condition when accessing port/connect_type for USB devices
- Using bundled catch v2.13.8
- Using bundled PEGTL v3.2.5
- Fixed usbguard-rule-parser file opening
- Fix unauthorized access via D-Bus [CVE-2019-25058]
## 1.0.0 - 2021-01-13
### Added
- Added openssl support
- Starting with libtool versioning
- Added interface for IPC permission query
- Introduced partial rule concept fo CLI
- Added WithConnectType for ldap rule
### Fixed/Changed
- Daemon does not apply the policy when
"change" action event appears anymore
- IPCClientPrivate@disconnect is thread safe
- Enforced loading of files from .d/ directory
in alphabetical order
- Improved CLI behaviour to be consistent
- Clarified rule's label documentation
## 0.7.8 - 2020-05-20
### Fixed
- Fixed segfaults with rules.d feature
## 0.7.7 - 2020-05-19
### Added
- Added readwritepath to service file
- Added match-all keyword to rules language
- Added rules.d feature
- daemon can load multiple rule files from rules.d/
- Included with-connect-type in dbus signal
### Fixed/Changed
- Fixed sigwaitinfo handling
- Fixed possible data corruption on stack with appendRule via dbus
- Fixed ENOBUFS errno handling on netlink socket
- daemon can survive and wait until socket is readable again
### Removed
- Dropped unused PIDFile from service file
- Dropped deprecated dbus-glib dependency
## 0.7.6 - 2019-11-08
### Added
- Added missing options in manpage usbguard-daemon(8)
- Extended the functionality of allow/block/reject commands
- the command can handle rule as a param and not only its ID
- e.g. in case of allow, command will allow each device that matches provided rule
- Added debug info for malformed descriptors
### Fixed/Changed
- Changed default backend to uevent
- Fixed handling of add uevents during scanning
- now we are sure that the enumeration is completed before processing any uevent
- we are trying to avoid a race where the kernel is still enumerating the devices
- and send the uevent while the parent is being authorised
- Silenced 'bind' and 'unbind' uevents
## 0.7.5 - 2019-07-02
### Added
- Added daemon configuration option HidePII
- Added check to avoid conflict between ASAN and TSAN
- Added daemon configuration option for authorized_default
- Added devpath option to generate-policy
- Added # line comments to the rule grammar
- Added ImplicitPolicyTarget to get/set parameter methods
- Added option to filter rules by label when listing
- Added the label attribute to rule
- Added PropertyParameterChanged signal
- Added support for portX/connect_type attribute
- Added temporary option to append-rule
- Added versioning to DBus service
- Added optional LDAP support
### Fixed/Changed
- Fixed invalid return value in Rule::Attribute::setSolveEqualsOrdered
- Fixed KeyValueParser to validate keys only when known names are set
- Fixed uninitialized variables found by coverity
- Fixes and cleanups based on LGTM.com report
- Hardened systemd service
- Rename ListRules parameter 'query' to 'label'
- Skip empty lines in usbguard-rule-parser
### Removed
- The proof-of-concept Qt applet was removed. It is going to be maintained in a simplified form as a separate project.
## 0.7.4 - 2018-07-12
### Fixed/Changed
- Fixed conditional manual page generation & installation
- Replaced Boost library based ext/stdio_filebuf.h implementation
with a custom FDStreamBuf implementation
## 0.7.3 - 2018-07-11
### Changed
- usbguard-daemon will now exit with an error if it fails to open
a logging file or audit event file.
- Updated PEGTL submodule and dropped support for older PEGTL API
- Modified the present device enumeration algorithm to be more
reliable. Enumeration timeouts won't cause usbguard-daemon process
to exit anymore.
- Manual pages are now generated using asciidoc (a2x) instead of
asciidoctor.
- Generation and installation of manual pages is now optional.
- Fixed several bugs D-Bus interface XML specification
### Added
- umockdev based device manager capable of simulating devices based
on umockdev-record files.
- Boost libraries can be used as ext/stdio_filebuf.h header file source.
### Removed
- Removed DummyDevices.tar.xz tarball that was supposed to be used for
testing.
## 0.7.2 - 2018-01-22
### Fixed/Changed
- Fixed memory leaks in usbguard::Hash class.
- Fixed file descriptor leaks in usbguard::SysFSDevice class.
- Skip audit backend logging when no backend was set.
### Added
- Added zsh completion & other scripts to the distribution tarball.
## 0.7.1 - 2017-11-30
### Added
- CLI: usbguard watch command now includes an -e <path> option to run an executable
for every received event. Event data are passed to the executable via environment
variables.
- usbguard-daemon: added "-K" option which can disable logging to console.
- Added zsh autocompletion support.
- usbguard-daemon: added "-f" option which enabled double-fork daemonization procedure.
- Added AuditBackend usbguard-daemon configuration option for selecting audit log backend.
- Linux Audit support via new LinuxAudit backend.
- Added missing RuleCondition.hpp header file to the public API headers.
- Code Style specification via AStyle configuration file.
### Removed
- Removed Utility.hpp header file from public API headers
- Reduced usage of raw C pointers throughout the code
### Changed
- Qt Applet: disabled session management
- usbguard-daemon console logging output is enabled by default now. Previously,
the -k option had to be passed to enable the output.
- Replaced --enable-maintainer-mode configure option with --enable-full-test-suite
option. When the new option is not used during the configure phase, only a basic
set of test is run during the make check phase.
- usbguard-daemon now opens configuration in read-only mode
- Fixed UEventDeviceManager to work with Linux Kernel >= 4.13
- Refactored audit logging to support different audit log backends
- Reformatted source code to conform to the code style.
- Made the configuration parser strict. Unknown directives and wrong syntax will
cause an error.
- Reformatted documentation from markdown to asciidoc format.
## 0.7.0 - 2017-04-12
### Added
- Added InsertedDevicePolicy configuration option to control the policy
method for inserted devices.
- Added RestoreControllerDeviceState configuration option.
- Added DeviceManagerBackend configuration option. This option can be used
to select from several device manager backend implementations.
- Implemented an uevent based device manager backend.
- Added setParameter, getParameter IPC (incl. D-Bus) methods.
- Added set-parameter, get-parameter CLI subcommands.
- Qt Applet: Added Spanish (es_AR) translation.
- Create empty rules.conf file at install time (make install).
- Support for numeric UID/GID values in IPCAllowedUsers and IPCAllowedGroups
settings.
- If bash completion support is detected at configure time, install the bash
completion script during make install.
- Added new configuration setting: IPCAccessControlFiles.
- IPC access is now configurable down to a section and privilege
level per user and/or group.
- Added add-user, remove-user usbuard CLI subcommands for creating, removing
IPC access control files.
- Added AuditFilePath configuration option for setting the location of the
USBGuard audit events log file path. If set, the usbguard-daemon will log
policy and device related actions and whether they succeeded or not.
### Removed
- Removed UDev based device manager backend and UDev related dependencies.
- Removed UDev development files/API dependency
### Changed
- Reset Linux root hub bcdDevice value before updating device hash. This is
a backwards incompatible change because it changes how the device hash is
computed for Linux root hub devices.
- Refactored low-level USB device handling into SysFSDevice class which
represents a device in the /sys filesystem (sysfs).
- Removed usage of `readdir_r` because it's obsolete. Replaced with readdir
with the assumption that its usage is thread-safe if the directory handle
passed to it is not shared between threads.
- Extended test suite with use case tests.
- Install the usbguard-daemon configuration and policy file with strict file
permissions to prevent policy leaks.
- Fixed several memory leaks.
- Don't pre-resolve user and group names in IPCAllowedUsers and IPCAllowedGroups
settings. Instead, resolve the name during the IPC authentication phase.
- Changed default values of PresentDevicePolicy (to apply-policy) and
IPCAllowedGroups (removed wheel group entry) settings in the shipped
usbguard-daemon.conf configuration file.
## 0.6.2 - 2016-09-18
### Changed
- Wait for disconnect in IPCClient dtor if needed
- Qt Applet: Fixed loading of decision method and default decision settings
## 0.6.1 - 2016-09-16
### Changed
- Refactored logging subsystem
- Fixed handling of IPC disconnect in the IPCClient class
- Qt Applet: Fixed handling of main window minimization and maximization
- Fixed building on architectures that don't provide required atomic operations.
The libatomic emulation library will be used in such cases.
- Fixed several typos in the documentation
### Added
- Implemented a simple internal logger
- Access to the logger via public API
- Improved logging coverage. Logging output can be enabled either via
CLI options or by setting the `USBGUARD_DEBUG` environment variable to 1.
- Qt Applet: UI translation support.
- Qt Applet: Czech (cs_CZ) translation
### Removed
- Removed spdlog dependency
## 0.6.0 - 2016-09-04
### Changed
- Fixed the daemon to use the match target when matching device rules.
This fixes matching devices against the rules in the policy.
- Switched to protobuf based IPC
- Simplified the IPC and D-Bus interfaces
- Refactored custom exceptions
### Added
- Added DevicePresenceChanged signal for notifying about device
insertions, updates and removals
- Added DevicePolicyChanged signal for notifying about device
policy changes.
- Added ExceptionMessage signal for sending asynchronous exceptions
to the IPC/D-Bus clients.
- Extended the usbguard CLI watch subcommand with the ability to
wait for the IPC connection to become available. See the new `-w`
and `-o` options for details.
### Removed
- Removed nlohmann/json submodule
- Removed allowDevice, blockDevice and rejectDevice methods from
the IPC and D-Bus interface.
- Removed DeviceAllowed, DeviceBlocked and DeviceRejected signals
from the IPC and D-Bus interface (replaced by single signal)
- Removed DeviceInserted, DevicePresent and DeviceRemoved signals
from the IPC and D-Bus interface (replaced by single signal)
## 0.5.14 - 2016-08-18
### Changed
- Fixed unknown descriptor type handling
## 0.5.13 - 2016-08-16
### Changed
- refactored USB parser to support multiple handlers per USB descriptor type
- Qt Applet: device list should be always expanded
### Added
- added support for an audio device related endpoint descriptor
## 0.5.12 - 2016-08-14
### Changed
- Fixed a bug in matching USB interface types with wildcards
- usbguard-daemon will now abort at startup if the rule file contains
syntax error instead of continuing with an empty rule set
## 0.5.11 - 2016-08-13
### Added
- Maintainer script for spellchecking source archive files
- Rule::Attribute class for representing the rule attributes
- USBDeviceID class for representing the USB device ID
- configure script option to control the bundling of PEGTL source files
- id attribute to the rule language for specifying the USB device ID
- Added a parent device ID field (and methods) to the Device class which
tracks the ID of the parent device
- Implemented "parent-hash" attribute for associating a device with its
parent device.
- The QtSvg module/library is now needed to compile the Qt applet
- Qt Applet: Device Dialog settings work now
- Qt Applet: The settings state is now remembered (via Qt's QSettings class)
- Qt Applet: Implemented serial number masking
- Qt Applet: Initial implementation of DeviceDialog window position randomization
- Qt Applet: IPC exceptions are shown in the message log
- Qt Applet: added an initial implementation of the device list with the ability
to change authorization target for each device
- Qt Applet: show a grey version of the USBGuard icon in IPC disconnected state
- usbguard-daemon.conf: added DeviceRulesWithPort setting (set to false by default)
- Added support for selecting crypto backend library at compile time using the
--with-crypto-library configure script switch
### Changed
- **IMPORTANT**: The device hash value computation was changed to include the
USB descriptor data. Additionally, the algorithm was changed to SHA-256 and
the hash value representation to base64. These changes are backwards incompatible
and existing policies that use the hash attribute need to be updated.
- Reimplemented the rule parser using PEGTL
- Changed public API of the Rule and Device classes because of the new
Rule::Attribute class rule attribute representation
- Extended the public IPCClient::IPCDisconnected method to include exception
related information
- All rule attributes now support both the single and multivalued form
- A rule attribute can now be specified only once
- The default usbguard-daemon.conf and usbguard.service files now respect
the paths set by the configure script
- New Qt applet icons with
- Fixed Qt applet so that it doesn't show an empty window when starting
- Qt Applet: Reject button is hidden by default.
- Updated usbguard-daemon manual page
- Permanent device specific rules managed by allowDevice, blockDevice and
rejectDevice actions are now handled properly. Existing device rules are
updated instead of just appending new rules to the policy.
- usbguard-daemon.conf: changed the default configuration value of
PresentControllerPolicy to keep
- Changed the device hashing algorithm to SHA-256
- Switched hash value representation from hex to base64
### Removed
- Removed Quex related files
- The "from Rule" Device class constructor was removed because it's use case
is unclear and it wasn't used anywhere
## 0.5.10 - 2016-07-08
### Changed
- Changed versioning scheme to include a release number. Releases will be
rolled out more often during a milestone (x.y -- currently 0.5) development.
- Enhancements of the usbguard command-line interface.
- Manual pages are now generated from their source (markdown) during the build
process.
- A default usbguard-daemon configuration file is now installed.
### Added
- Merged usbguard-applet-qt (sub)project into usbguard.
- Added a D-Bus bridge component which exposes a D-Bus interface to usbguard.
### Fixed
- Fixed USB descriptor data parsing. Previously, many real-world cases of
descriptors weren't parsed correctly because of a naive implementation of the
parser.
- Fixed systemd integration.
- Fixed issues: #84, #83, #80, #79, #78, #77, #76, #75, #74, #73, #72, #71,
#70, #69, #68, #56, #54, #53, #51, #50, #44.
## 0.4 - 2016-02-07
### Changed
- The daemon is now capable of dropping process capabilities and uses a seccomp
based syscall allowlist. Options to enable these features were added to the
usbguard-daemon command.
- Devices connected at the start of the daemon are now recognized and the
DevicePresent signal is sent for each of them.
- The library API was extended with the Device and DeviceManager classes.
- Implemented the usbguard CLI, see usbguard(1) for available commands.
- Initial authorization policies can be now easily generated using the usbguard
generate-policy command.
- Extended the rule language with rule conditions. See usbguard-rules.conf(5)
for details.
- Moved logging code into the shared library. You can use static methods of the
Logger class to configure logging behaviour.
- Removed the bundled libsodium and libqb libraries.
### Added
- New configuration options for setting the implicit policy target and how to
handle the present devices are now available.
### Fixed
- String values read from the device are now properly escaped and length limits
on these values are enforced.
- Fixed several bugs.
- Resolved issues: #46, #45, #41, #40, #37, #32, #31, #28, #25, #24, #21, #16,
#13, #9, #4
### Removed
- The device hashing procedure was altered and generates different hash values.
If you are using the hash attribute in your rules, you'll have to update the
values.
- The bundled libsodium and libqb were removed. You'll have to compile and
install them separately if your distribution doesn't provide them as
packages.
## 0.3p3 - 2015-04-14
### Changed
- use AC_CHECK_HEADER instead of a pkg-config based check for json and spdlog
- make check target available
## 0.3p2 - 2015-04-02
### Changed
- SHM permissions are set to uid of the client process and gid of the daemon
with rw-rw---- mode (0660).
- added --with-bundled-json and --with-bundled-spdlog configure options to
enable/disable the usage of the bundled libraries
## 0.3p1 - 2015-04-10
### Removed
- removed bundled cppformat copylib
## 0.3 - 2015-04-09
### Changed
- Implemented a DAC based IPC access control
## Added
- Ship man pages for usbguard-daemon, usbguard-daemon.conf and
usbguard-rules.conf
- Ship the LICENSE file
### Fixed
- Fixed appending of permanent rules
- Fixed distribution RPM spec file. Thanks to Petr Lautrbach and Ralf
Corsepius for review.
- Resolved issues: #18 #19 #13
## 0.2 - 2015-04-03
### Changed
- Reworked device hashing.
- Rule language changes
- set operators
- renamed "port" to "via-port"
- added "with-interface" matching attribute
- removed the "class" attribute
- The IPCClient, ConfigFile, Rule and RuleSet classes are now shipped in a
shared library.
- Created abstract interface for OS specific USB device handling.
- Changed default daemon config path to /etc/usbguard/usbguard-daemon.conf.
- Implemented basic USB descriptor structure parsing and improved
interface type handling
- The IPC API was changed:
- added new signal, DevicePresent, which signals that a device was
already present at the start of the IPC session
- the DeviceInserted and DevicePresent signals pass interface types that
the device supports
- the explicit string arguments of the signals are now passed as a map
### Added
- Support for modifying permanent rules over the IPC interface.
### Fixed
- Resolved issues: #1 #2 #5 #6 #10 #11
================================================
FILE: LICENSE
================================================
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.
================================================
FILE: Makefile.am
================================================
##
## Copyright (C) 2016 Red Hat, Inc.
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
##
## Authors: Daniel Kopecek <dkopecek@redhat.com>
## Jiri Vymazal <jvymazal@redhat.com>
## Attila Lakatos <alakatos@redhat.com>
##
SUBDIRS=src/Tests/
ACLOCAL_AMFLAGS= -I m4
EXTRA_DIST =\
LICENSE \
usbguard-daemon.conf.in \
usbguard.service.in \
VERSION \
CHANGELOG.md \
src/astylerc \
src/test_filesystem.cpp \
scripts/usbguard-zsh-completion \
scripts/modeline.vim \
scripts/astyle.sh \
scripts/reformat-sources.sh \
scripts/usb-descriptor-collect.sh
BUILT_SOURCES=\
src/build-config.h
$(top_builddir)/src/build-config.h: $(top_builddir)/src/build-config.h.in
$(SED) \
-e "s|[$$]{localstatedir}|${localstatedir}|g" \
-e "s|[$$]{exec_prefix}|${prefix}|g" \
-e "s|[$$]{datarootdir}|${datarootdir}|g" \
-e "s|[$$]{datadir}|${pkgdatadir}|g" \
-e "s|[$$]{sysconfdir}|${sysconfdir}|g" \
-e "s|[$$]{prefix}|${prefix}|g" \
-e "s|[$$]{PACKAGE_TARNAME}|${PACKAGE_TARNAME}|g" \
$^ > $@ || rm -f $@
DISTCLEANFILES=\
$(BUILT_SOURCES)
AM_DISTCHECK_CONFIGURE_FLAGS=\
--enable-full-test-suite \
--with-bundled-catch \
--with-bundled-pegtl
CLEANFILES=
man_ADOC_FILES=\
doc/man/usbguard.1.adoc \
doc/man/usbguard-dbus.8.adoc \
doc/man/usbguard-daemon.8.adoc \
doc/man/usbguard-daemon.conf.5.adoc \
doc/man/usbguard-ldap.conf.5.adoc \
doc/man/usbguard-rules.conf.5.adoc
man_ROFF_FILES=\
$(man_ADOC_FILES:.adoc=.roff)
EXTRA_DIST+=\
$(man_ADOC_FILES) \
doc/man/example-allow-device.adoc \
doc/man/example-initial-policy.adoc \
doc/man/footer.adoc
CLEANFILES+=\
$(man_ROFF_FILES) \
$(man_ROFF_FILES:.roff=)
if DOCS_ENABLED
BUILT_SOURCES+=\
$(man_ROFF_FILES)
$(top_builddir)/%.roff: %.adoc
$(MKDIR_P) $$(dirname $@)
$(A2X) -v -f manpage $^ -D $(top_builddir)/$$(dirname $@)
$(INSTALL) -m 644 $(top_builddir)/$(@:.roff=) $(top_builddir)/$@
endif
install-data-hook: install-daemon-conf install-systemd-service install-data-dbus install-tmpfiles
uninstall-hook: uninstall-daemon-conf uninstall-systemd-service uninstall-data-dbus uninstall-tmpfiles
CLEANFILES+=\
$(top_builddir)/usbguard-daemon.conf
usbguard-daemon.conf: $(top_builddir)/usbguard-daemon.conf.in
$(SED) \
-e "s|%sysconfdir%|${sysconfdir}|g" \
-e "s|%localstatedir%|${localstatedir}|g" \
$^ > $@ || rm -f $@
usbguard_confdir= $(sysconfdir)/usbguard
distuninstallcheck_listfiles= find . -type f ! -name rules.conf -print
EXTRA_DIST+=usbguard-tmpfiles.conf
install-tmpfiles:
mkdir -p ${DESTDIR}$(prefix)/lib/tmpfiles.d/
$(INSTALL_DATA) -m 640 ${srcdir}/usbguard-tmpfiles.conf ${DESTDIR}$(prefix)/lib/tmpfiles.d/usbguard.conf
uninstall-tmpfiles:
rm ${DESTDIR}$(prefix)/lib/tmpfiles.d/usbguard.conf
install-daemon-conf: $(top_builddir)/usbguard-daemon.conf
$(MKDIR_P) $(DESTDIR)/$(usbguard_confdir)
$(MKDIR_P) $(DESTDIR)/$(usbguard_confdir)/IPCAccessControl.d
$(MKDIR_P) $(DESTDIR)/${localstatedir}/log/usbguard
chmod 0700 $(DESTDIR)/${localstatedir}/log/usbguard
$(INSTALL) -m 600 $(top_builddir)/usbguard-daemon.conf \
$(DESTDIR)/$(usbguard_confdir)/usbguard-daemon.conf
if ! test -f "$(DESTDIR)/$(usbguard_confdir)/rules.conf"; then \
touch $(DESTDIR)/$(usbguard_confdir)/rules.conf && \
chmod 600 $(DESTDIR)/$(usbguard_confdir)/rules.conf; \
fi
uninstall-daemon-conf:
rm -f $(DESTDIR)/$(usbguard_confdir)/usbguard-daemon.conf
if SYSTEMD_SUPPORT_ENABLED
CLEANFILES+=\
$(top_builddir)/usbguard.service
usbguard.service: $(top_srcdir)/usbguard.service.in
$(SED) \
-e "s|%sbindir%|${sbindir}|" \
-e "s|%sysconfdir%|${sysconfdir}|" \
-e "s|%localstatedir%|${localstatedir}|" \
$^ > $@ || rm -f $@
install-systemd-service: $(top_builddir)/usbguard.service
$(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR)
$(INSTALL) -m 644 $(top_builddir)/usbguard.service \
$(DESTDIR)$(SYSTEMD_UNIT_DIR)/usbguard.service
uninstall-systemd-service:
rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/usbguard.service
else
install-systemd-service:
uninstall-systemd-service:
endif
if DOCS_ENABLED
man8_MANS=\
$(top_builddir)/doc/man/usbguard-daemon.8
man5_MANS=\
$(top_builddir)/doc/man/usbguard-daemon.conf.5 \
$(top_builddir)/doc/man/usbguard-rules.conf.5
man1_MANS=\
$(top_builddir)/doc/man/usbguard.1
else
man8_MANS=
man5_MANS=
man1_MANS=
endif
AM_CPPFLAGS=\
-I$(top_srcdir)/src \
-I$(top_srcdir)/src/Library/public
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libusbguard.pc
lib_LTLIBRARIES=\
libusbguard.la
libusbguard_la_CPPFLAGS=\
-fPIC \
-I$(top_srcdir)/src \
-I$(top_srcdir)/src/Library \
-I$(top_srcdir)/src/Library/public \
-I$(top_builddir)/src/Library/IPC \
${BOOST_CPPFLAGS} \
${PTHREAD_CPPFLAGS} \
@qb_CFLAGS@ \
@protobuf_CFLAGS@ \
@crypto_CFLAGS@ \
@pegtl_CFLAGS@ \
@umockdev_CFLAGS@
libusbguard_la_LDFLAGS=\
-no-undefined \
-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
${BOOST_LDFLAGS}
libusbguard_la_LIBADD=\
@qb_LIBS@ \
@protobuf_LIBS@ \
@crypto_LIBS@ \
@pegtl_LIBS@ \
@atomic_LIBS@ \
@umockdev_LIBS@ \
${BOOST_IOSTREAMS_LIB} \
${PTHREAD_CFLAGS} \
${PTHREAD_LIBS}
EXTRA_DIST+=\
src/Library/IPC/Devices.proto \
src/Library/IPC/Exception.proto \
src/Library/IPC/Message.proto \
src/Library/IPC/Policy.proto \
src/Library/IPC/Rule.proto \
src/Library/IPC/Parameter.proto
nodist_libusbguard_la_SOURCES=\
src/Library/IPC/Message.pb.cc \
src/Library/IPC/Message.pb.h \
src/Library/IPC/Rule.pb.cc \
src/Library/IPC/Rule.pb.h \
src/Library/IPC/Devices.pb.cc \
src/Library/IPC/Devices.pb.h \
src/Library/IPC/Exception.pb.cc \
src/Library/IPC/Exception.pb.h \
src/Library/IPC/Policy.pb.cc \
src/Library/IPC/Policy.pb.h \
src/Library/IPC/Parameter.pb.cc \
src/Library/IPC/Parameter.pb.h
BUILT_SOURCES+=\
$(nodist_libusbguard_la_SOURCES)
CLEANFILES+=\
$(nodist_libusbguard_la_SOURCES)
libusbguard_la_SOURCES=\
src/Common/ByteOrder.hpp \
src/Common/FDInputStream.hpp \
src/Common/Thread.hpp \
src/Common/Utility.cpp \
src/Common/Utility.hpp \
src/Common/LDAPUtil.cpp \
src/Common/LDAPUtil.hpp \
src/Library/AllowedMatchesCondition.cpp \
src/Library/AllowedMatchesCondition.hpp \
src/Library/Base64.cpp \
src/Library/Base64.hpp \
src/Library/ConfigFilePrivate.cpp \
src/Library/ConfigFilePrivate.hpp \
src/Library/DeviceBase.cpp \
src/Library/DeviceBase.hpp \
src/Library/DeviceManagerBase.cpp \
src/Library/DeviceManagerBase.hpp \
src/Library/DeviceManagerPrivate.cpp \
src/Library/DeviceManagerPrivate.hpp \
src/Library/DevicePrivate.cpp \
src/Library/DevicePrivate.hpp \
src/Library/FixedStateCondition.cpp \
src/Library/FixedStateCondition.hpp \
src/Library/Hash.cpp \
src/Library/Hash.hpp \
src/Library/IPCClientPrivate.cpp \
src/Library/IPCClientPrivate.hpp \
src/Library/IPCPrivate.cpp \
src/Library/IPCPrivate.hpp \
src/Library/IPCServerPrivate.cpp \
src/Library/IPCServerPrivate.hpp \
src/Library/Init.cpp \
src/Library/KeyValueParserPrivate.cpp \
src/Library/KeyValueParserPrivate.hpp \
src/Library/LocaltimeCondition.cpp \
src/Library/LocaltimeCondition.hpp \
src/Library/RandomStateCondition.cpp \
src/Library/RandomStateCondition.hpp \
src/Library/RuleAppliedCondition.cpp \
src/Library/RuleAppliedCondition.hpp \
src/Library/RuleEvaluatedCondition.cpp \
src/Library/RuleEvaluatedCondition.hpp \
src/Library/RuleParser/Actions.hpp \
src/Library/RuleParser/Grammar.hpp \
src/Library/RulePrivate.cpp \
src/Library/RulePrivate.hpp \
src/Library/SysFSDevice.cpp \
src/Library/SysFSDevice.hpp \
src/Library/UEvent.cpp \
src/Library/UEvent.hpp \
src/Library/UEventDeviceManager.cpp \
src/Library/UEventDeviceManager.hpp \
src/Library/UEventParser.cpp \
src/Library/UEventParser.hpp \
src/Library/UMockdevDeviceManager.cpp \
src/Library/UMockdevDeviceManager.hpp \
src/Library/UMockdevDeviceDefinition.cpp \
src/Library/UMockdevDeviceDefinition.hpp \
src/Library/Utility.cpp \
src/Library/Utility.hpp \
src/Library/public/usbguard/Audit.cpp \
src/Library/public/usbguard/ConfigFile.cpp \
src/Library/public/usbguard/Device.cpp \
src/Library/public/usbguard/DeviceManager.cpp \
src/Library/public/usbguard/DeviceManagerHooks.cpp \
src/Library/public/usbguard/IPCClient.cpp \
src/Library/public/usbguard/IPCServer.cpp \
src/Library/public/usbguard/KeyValueParser.cpp \
src/Library/public/usbguard/Logger.cpp \
src/Library/public/usbguard/MemoryRuleSet.cpp \
src/Library/public/usbguard/Policy.cpp \
src/Library/public/usbguard/Rule.cpp \
src/Library/public/usbguard/RuleCondition.cpp \
src/Library/public/usbguard/RuleParser.cpp \
src/Library/public/usbguard/RuleParser.hpp \
src/Library/public/usbguard/RuleSet.cpp \
src/Library/public/usbguard/Typedefs.cpp \
src/Library/public/usbguard/USB.cpp \
src/Library/public/usbguard/USBGuard.cpp
pkginclude_HEADERS=\
src/Library/public/usbguard/Audit.hpp \
src/Library/public/usbguard/ConfigFile.hpp \
src/Library/public/usbguard/Device.hpp \
src/Library/public/usbguard/DeviceManager.hpp \
src/Library/public/usbguard/DeviceManagerHooks.hpp \
src/Library/public/usbguard/Exception.hpp \
src/Library/public/usbguard/IPCClient.hpp \
src/Library/public/usbguard/IPCServer.hpp \
src/Library/public/usbguard/Interface.hpp \
src/Library/public/usbguard/KeyValueParser.hpp \
src/Library/public/usbguard/Logger.hpp \
src/Library/public/usbguard/MemoryRuleSet.hpp \
src/Library/public/usbguard/Policy.hpp \
src/Library/public/usbguard/Predicates.hpp \
src/Library/public/usbguard/Rule.hpp \
src/Library/public/usbguard/RuleCondition.hpp \
src/Library/public/usbguard/RuleSet.hpp \
src/Library/public/usbguard/Typedefs.hpp \
src/Library/public/usbguard/USB.hpp \
src/Library/public/usbguard/USBGuard.hpp
# Workaround for generated protobuf code mishaps
#```
# error: no previous declaration for 'void usbguard::IPC::protobuf_Message_2eproto::AddDescriptorImpl()' [-Werror=missing-declarations]
# void AddDescriptorImpl() {
# ^~~~~~~~~~~~~~~~~
#```
%.pb.lo : CXXFLAGS += -Wno-missing-declarations
%.pb.cc %.pb.h: %.proto
$(MKDIR_P) $(top_builddir)/src/Library/IPC
@PROTOC@ --cpp_out=$(top_builddir)/src/Library/IPC --proto_path=$(top_srcdir)/src/Library/IPC "$<"
sed -i -e '1i#ifndef __clang_analyzer__' -e '$$a#endif' "$@"
sbin_PROGRAMS=\
usbguard-daemon
usbguard_daemon_SOURCES=\
src/Daemon/Daemon.cpp \
src/Daemon/Daemon.hpp \
src/Daemon/main.cpp \
src/Daemon/FileRuleSet.cpp \
src/Daemon/FileRuleSet.hpp \
src/Daemon/LDAPHandler.cpp \
src/Daemon/LDAPHandler.hpp \
src/Daemon/LDAPRuleSet.cpp \
src/Daemon/LDAPRuleSet.hpp \
src/Daemon/NSHandler.cpp \
src/Daemon/NSHandler.hpp \
src/Daemon/RuleSetFactory.cpp \
src/Daemon/RuleSetFactory.hpp \
src/Daemon/Seccomp.c \
src/Daemon/Seccomp.h \
src/Common/Utility.hpp \
src/Common/Utility.cpp \
src/Daemon/FileAuditBackend.hpp \
src/Daemon/FileAuditBackend.cpp \
src/Daemon/LinuxAuditBackend.hpp \
src/Daemon/LinuxAuditBackend.cpp
usbguard_daemon_CXXFLAGS=\
$(PTHREAD_CFLAGS)
usbguard_daemon_CPPFLAGS=\
-fPIE \
$(AM_CPPFLAGS) \
@ldap_CFLAGS@ \
@seccomp_CFLAGS@ \
@libcapng_CFLAGS@ \
@audit_CFLAGS@
usbguard_daemon_LDADD=\
$(top_builddir)/libusbguard.la \
@ldap_LIBS@ \
@seccomp_LIBS@ \
@libcapng_LIBS@ \
@audit_LIBS@ \
$(PTHREAD_LIBS)
EXTRA_DIST +=\
README.adoc \
src/ThirdParty/Catch \
src/ThirdParty/PEGTL
bin_PROGRAMS=\
usbguard \
usbguard-rule-parser
usbguard_SOURCES=\
src/CLI/usbguard.cpp \
src/CLI/usbguard.hpp \
src/CLI/usbguard-list-devices.hpp \
src/CLI/usbguard-list-devices.cpp \
src/CLI/usbguard-allow-device.hpp \
src/CLI/usbguard-allow-device.cpp \
src/CLI/usbguard-block-device.hpp \
src/CLI/usbguard-block-device.cpp \
src/CLI/usbguard-reject-device.hpp \
src/CLI/usbguard-reject-device.cpp \
src/CLI/usbguard-apply-device-policy.hpp \
src/CLI/usbguard-apply-device-policy.cpp \
src/CLI/usbguard-list-rules.hpp \
src/CLI/usbguard-list-rules.cpp \
src/CLI/usbguard-append-rule.hpp \
src/CLI/usbguard-append-rule.cpp \
src/CLI/usbguard-remove-rule.hpp \
src/CLI/usbguard-remove-rule.cpp \
src/CLI/usbguard-generate-policy.cpp \
src/CLI/usbguard-generate-policy.hpp \
src/CLI/usbguard-watch.hpp \
src/CLI/usbguard-watch.cpp \
src/CLI/IPCSignalWatcher.hpp \
src/CLI/IPCSignalWatcher.cpp \
src/CLI/PolicyGenerator.hpp \
src/CLI/PolicyGenerator.cpp \
src/CLI/usbguard-read-descriptor.hpp \
src/CLI/usbguard-read-descriptor.cpp \
src/CLI/usbguard-set-parameter.hpp \
src/CLI/usbguard-set-parameter.cpp \
src/CLI/usbguard-get-parameter.hpp \
src/CLI/usbguard-get-parameter.cpp \
src/CLI/usbguard-add-user.cpp \
src/CLI/usbguard-add-user.hpp \
src/CLI/usbguard-remove-user.cpp \
src/CLI/usbguard-remove-user.hpp \
src/CLI/usbguard-print-version.cpp \
src/CLI/usbguard-print-version.hpp
usbguard_CXXFLAGS=\
$(PTHREAD_CFLAGS)
usbguard_CPPFLAGS=\
-fPIE \
$(AM_CPPFLAGS) \
-I$(top_srcdir)/src/CLI
usbguard_LDADD=\
$(top_builddir)/libusbguard.la \
${PTHREAD_LIBS}
if ENABLE_BASH_COMPLETION
bashcompletiondir = $(BASH_COMPLETION_DIR)
dist_bashcompletion_DATA = $(top_srcdir)/scripts/bash_completion/usbguard
endif
usbguard_rule_parser_SOURCES=\
src/CLI/usbguard-rule-parser.cpp
usbguard_rule_parser_CPPFLAGS=\
-fPIE \
$(AM_CPPFLAGS) \
-I$(top_srcdir)/src/CLI
usbguard_rule_parser_LDADD=\
$(top_builddir)/libusbguard.la
#
# DBus Bridge
#
if DBUS_ENABLED
sbin_PROGRAMS+= usbguard-dbus
if DOCS_ENABLED
man8_MANS+=\
$(top_builddir)/doc/man/usbguard-dbus.8
endif
BUILT_SOURCES+=\
src/DBus/DBusInterface.xml.cstr \
src/DBus/org.usbguard1.service \
src/DBus/usbguard-dbus.service
EXTRA_DIST+=\
src/DBus/org.usbguard1.conf \
src/DBus/org.usbguard1.service.in \
src/DBus/usbguard-dbus.service.in \
src/DBus/org.usbguard1.policy \
src/DBus/DBusInterface.xml
CLEANFILES+=\
$(top_builddir)/src/DBus/org.usbguard1.service \
$(top_builddir)/src/DBus/usbguard-dbus.service \
$(top_builddir)/src/DBus/DBusInterface.xml.cstr
usbguard_dbus_SOURCES=\
src/DBus/gdbus-server.cpp \
src/DBus/DBusBridge.cpp \
src/DBus/DBusBridge.hpp
usbguard_dbus_CPPFLAGS=\
-fPIE \
$(AM_CPPFLAGS) \
-I$(top_builddir)/src/DBus \
@dbus_CFLAGS@
usbguard_dbus_LDADD=\
$(top_builddir)/libusbguard.la \
@dbus_LIBS@
%.xml:
xmllint "$(top_srcdir)/$@" > /dev/null
%.xml.cstr: %.xml
XMLLINT_INDENT="" xmllint --noblanks --format "$<" |\
sed -n -e '/<!--/,/-->/ d; s|\"|\\"|g; s|.*|"&"|; p' > "$(top_builddir)/$@"
%.service: %.service.in
sed -e "s|%{sbindir}%|$(sbindir)|" "$<" > "$(top_builddir)/$@"
install-data-dbus: $(top_builddir)/src/DBus/org.usbguard1.service install-polkit-policy install-systemd-dbus-service
$(MKDIR_P) $(DESTDIR)$(DBUS_SERVICES_DIR) && \
$(INSTALL_DATA) $(top_builddir)/src/DBus/org.usbguard1.service $(DESTDIR)$(DBUS_SERVICES_DIR)
$(MKDIR_P) $(DESTDIR)$(DBUS_BUSCONFIG_DIR) && \
$(INSTALL_DATA) $(top_srcdir)/src/DBus/org.usbguard1.conf $(DESTDIR)$(DBUS_BUSCONFIG_DIR)
uninstall-data-dbus: uninstall-polkit-policy uninstall-systemd-dbus-service
rm -f $(DESTDIR)$(DBUS_SERVICES_DIR)/org.usbguard1.service
-rmdir $(DESTDIR)$(DBUS_SERVICES_DIR)
rm -f $(DESTDIR)$(DBUS_BUSCONFIG_DIR)/org.usbguard1.conf
-rmdir $(DESTDIR)$(DBUS_BUSCONFIG_DIR)
dbus-docs: $(top_srcdir)/src/DBus/DBusInterface.xml
#
# Copy the input files to builddir because gdbus-codegen
# doesn't provide an option to store the output files somewhere
# else than in the directory where the input files are. And we
# don't want to create files in the srcdir when building.
#
$(MKDIR_P) "$(top_builddir)/src/DBus"
cp "$<" "$(top_builddir)/src/DBus/"
$(GDBUS_CODEGEN) --interface-prefix org.usbguard --generate-docbook=docbook \
"$(top_builddir)/src/DBus/DBusInterface.xml"
for docbook in $(top_builddir)/docbook-org.usbguard.*.xml; do \
$(XSLTPROC) -o "$$(basename -s .xml $$docbook).html" \
"$(top_srcdir)/src/ThirdParty/xsl-stylesheets/xhtml-1_1/docbook.xsl" \
"$(top_builddir)/$$docbook"; \
done
if POLICYKIT_ENABLED
install-polkit-policy:
$(MKDIR_P) $(DESTDIR)$(POLKIT_POLICY_DIR) && \
$(INSTALL_DATA) $(top_srcdir)/src/DBus/org.usbguard1.policy $(DESTDIR)$(POLKIT_POLICY_DIR)
uninstall-polkit-policy:
rm -f $(DESTDIR)$(POLKIT_POLICY_DIR)/org.usbguard1.policy
-rmdir $(DESTDIR)$(POLKIT_POLICY_DIR)
else
install-polkit-policy:
uninstall-polkit-policy:
endif
if SYSTEMD_SUPPORT_ENABLED
install-systemd-dbus-service: $(top_builddir)/src/DBus/usbguard-dbus.service
$(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR) && \
$(INSTALL_DATA) $(top_builddir)/src/DBus/usbguard-dbus.service $(DESTDIR)$(SYSTEMD_UNIT_DIR)
uninstall-systemd-dbus-service:
rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/usbguard-dbus.service
-rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR)
else
install-systemd-dbus-service:
uninstall-systemd-dbus-service:
endif
else
install-data-dbus:
uninstall-data-dbus:
endif #DBUS_ENABLED
$(DIST_ARCHIVES):
test -f "$@" || $(MAKE) dist
release-files: $(DIST_ARCHIVES)
$(eval RELEASE_DIR:="release.$(PACKAGE)-$(VERSION)")
$(eval GPG:=$(shell test -n "$$QUBES_GPG_DOMAIN" && echo qubes-gpg-client-wrapper || echo gpg2))
$(MKDIR_P) $(RELEASE_DIR)
cp $(DIST_ARCHIVES) $(RELEASE_DIR)
cd $(RELEASE_DIR) && $(GPG) -b -a -o - $(DIST_ARCHIVES) > $(DIST_ARCHIVES).sig
cd $(RELEASE_DIR) && openssl sha256 $(DIST_ARCHIVES) > $(DIST_ARCHIVES).sum
analyze-clang:
$(eval ANALYSIS_ROOT:=$(shell mktemp -d -t usbguard-analyze-clang.XXXXXX))
$(eval JOBS:=$(shell grep -c '^processor' /proc/cpuinfo 2> /dev/null || echo 1))
cd "$(ANALYSIS_ROOT)" && scan-build $(abs_top_srcdir)/configure $(ANALYZE_CONFIGURE_ARGS)
cd "$(ANALYSIS_ROOT)" && scan-build \
--status-bugs -maxloop 8 -disable-checker deadcode.DeadStores -o "$(abs_top_builddir)" \
make -j$(JOBS)
rm -rf "$(ANALYSIS_ROOT)"
#
# overriding 'check' target to enable "make check" to perform build as well
#
check: all
$(MAKE) $(AM_MAKEFLAGS) check-recursive
================================================
FILE: README.adoc
================================================
USBGuard
========
:toc:
[.clearfix]
--
[.left]
image::https://travis-ci.com/USBGuard/usbguard.svg?branch=master[Travis CI, link=https://travis-ci.com/USBGuard/usbguard]
[.left]
image::https://coveralls.io/repos/github/USBGuard/usbguard/badge.svg[Coverage, link=https://coveralls.io/github/USBGuard/usbguard]
[.left]
image::https://img.shields.io/github/license/USBGuard/usbguard.svg[License, link=https://github.com/USBGuard/usbguard/#license]
--
== About
USBGuard is a software framework for implementing USB device authorization policies (what kind of USB devices are authorized) as well as method of use policies (how a USB device may interact with the system).
Simply put, it is a USB device allowlisting tool.
== Documentation
* User Guide (TBA)
* Manual Pages
** <<doc/man/usbguard-daemon.8.adoc#name, usbguard-daemon(8)>>
** <<doc/man/usbguard-daemon.conf.5.adoc#name, usbguard-daemon.conf(5)>>
** <<doc/man/usbguard-rules.conf.5.adoc#name, usbguard-rules.conf(5)>>
** <<doc/man/usbguard.1.adoc#name, usbguard(1)>>
** <<doc/man/usbguard-dbus.8.adoc#name, usbguard-dbus(8)>>
== Compilation & Installation
WARNING: *Prior to starting the USBGuard daemon (or service) for the first time*
(but after installation)
we need to
generate a rules file for USBGuard so that the currently attached
USB devices (in particular mouse and keyboard) keep working
so that you will not **get locked out of your system**.
More on that below at <<before-the-first-start, Before the First Start>>.
To compile the source code, you will require at least C{plus}{plus}17. +
If you are compiling sources from a release tarball, you'll need the development files for:
* https://github.com/ClusterLabs/libqb[libqb] - used for local UNIX socket based IPC
* https://github.com/google/protobuf[protobuf] - used for IPC message (de)serialization
* https://download.libsodium.org[libsodium] or https://www.gnupg.org/software/libgcrypt[libgcrypt] - used for hashing
* https://asciidoc.org[asciidoc (a2x)] - needed to generate documentation
Optionally, you may want to install:
* https://github.com/seccomp/libseccomp[libseccomp] - used to implement a syscall allowlist
* https://people.redhat.com/sgrubb/libcap-ng/[libcap-ng] - used to drop process capabilities
If you are on a Debian based GNU/Linux distribution like Ubuntu 21.10,
installation of all build dependencies would be something like this:
$ sudo apt update && \
sudo apt install --no-install-recommends -V \
asciidoc autoconf automake bash-completion build-essential catch2 \
docbook-xml docbook-xsl git ldap-utils libaudit-dev libcap-ng-dev \
libdbus-glib-1-dev libldap-dev libpolkit-gobject-1-dev libprotobuf-dev \
libqb-dev libseccomp-dev libsodium-dev libtool libxml2-utils \
libumockdev-dev pkg-config protobuf-compiler sudo tao-pegtl-dev xsltproc
And then do:
$ ./configure # for arguments of interest see below
$ make
$ make check # if you would like to run the test suite
$ sudo make install
Configure arguments that deserve explicit mentioning (quoting `./configure --help` output):
--enable-systemd install the systemd service unit file (default=no)
--with-crypto-library Select crypto backend library. Supported values:
sodium, gcrypt, openssl.
--with-bundled-catch Build using the bundled Catch library
--with-bundled-pegtl Build using the bundled PEGTL library
--with-ldap Build USBGuard with ldap support
If you want to compile the sources in a cloned repository, you'll have to run the `./autogen.sh` script.
It will fetch the sources (via git submodules) of https://github.com/taocpp/PEGTL/[PEGTL] and https://github.com/philsquared/Catch[Catch].
The script will then initialize the autotools based build system, e.g. generate the `./configure` script.
== Before the First Start
*Prior to starting the USBGuard daemon (or service) for the first time*
(but after installation)
we need to
generate a rules file for USBGuard so that the currently attached
USB devices (in particular mouse and keyboard) keep working
so that you will not **get locked out of your system**.
A rules file can be generated like this:
$ sudo sh -c 'usbguard generate-policy > /etc/usbguard/rules.conf'
After that, you can safely start service `usbguard`:
$ sudo systemctl start usbguard.service
And you can make systemd start the service every time your boot your machine:
$ sudo systemctl enable usbguard.service
== License
Copyright (C) 2015-2019 Red Hat, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
================================================
FILE: RELEASE_PROCESS.md
================================================
# USBGuard Release Process
1. Clean up any artifacts from your local repository.
```
$ git clean -xfd
```
2. Setup build directory.
```
$ ./autogen.sh
$ mkdir build && cd build
$ ../configure --enable-full-test-suite --with-crypto-library=gcrypt --with-ldap
$ make
```
3. Run the test suite. All the tests must pass.
```
$ sudo make check
```
4. Compare previous lib version with current.
```
$ abidiff --stat ../abi-ref/libusbguard.so.abi .libs/libusbguard.so
$ cd ..
```
5. Update the lib version (CURRENT, REVISION, AGE) in `configure.ac` according to comments.
6. Update ABI reference.
```
$ abidw --out-file abi-ref/libusbguard.so.abi build/.libs/libusbguard.so
$ sudo rm -rf build
```
7. Update the `VERSION` file and `CHANGELOG.md`. Commit your changes.
8. Build the final release tarball.
```
$ ./autogen.sh
$ mkdir build; cd build
$ ../configure --with-crypto-library=gcrypt
$ make dist
```
9. Tag the release with a signed tag.
```
$ git tag -s -m "usbguard-0.x.y" usbguard-0.x.y
$ git push origin usbguard-0.x.x
```
10. Hash and sign the release.
```
$ sha256sum usbguard-0.x.y.tar.gz > usbguard-0.x.y.tar.gz.sum
$ gpg --armor --detach-sign usbguard-0.x.y.tar.gz
$ gpg --clearsign usbguard-0.x.y.tar.gz.sum
```
11. Create a new GitHub release using the associated tag; add the relevant section from CHANGELOG.md. Upload:
* usbguard-0.x.y.tar.gz
* usbguard-0.x.y.tar.gz.asc
* usbguard-0.x.y.tar.gz.sum
* usbguard-0.x.y.tar.gz.sum.asc
================================================
FILE: VERSION
================================================
1.1.4
================================================
FILE: abi-ref/libusbguard.so.abi
================================================
<abi-corpus version='2.4' path='build/.libs/libusbguard.so' architecture='elf-amd-x86_64' soname='libusbguard.so.1'>
<elf-needed>
<dependency name='libqb.so.100'/>
<dependency name='libprotobuf.so.30'/>
<dependency name='libgcrypt.so.20'/>
<dependency name='libgpg-error.so.0'/>
<dependency name='libumockdev.so.0'/>
<dependency name='libgobject-2.0.so.0'/>
<dependency name='libglib-2.0.so.0'/>
<dependency name='libstdc++.so.6'/>
<dependency name='libm.so.6'/>
<dependency name='libgcc_s.so.1'/>
<dependency name='libc.so.6'/>
<dependency name='ld-linux-x86-64.so.2'/>
</elf-needed>
<elf-function-symbols>
<elf-symbol name='_ZN8usbguard10AuditEvent11setCommitedEb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard10AuditEvent6commitERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard10AuditEvent6setKeyERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard10AuditEvent7failureEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard10AuditEvent7successEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard10AuditEventC1EOS0_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard10AuditEventC1ERKNS_13AuditIdentityERSt10shared_ptrINS_12AuditBackendEE' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard10AuditEventC2ERKNS_13AuditIdentityERSt10shared_ptrINS_12AuditBackendEE' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard10AuditEventC2EOS0_' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard10AuditEventC1EOS0_' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard10AuditEventC2ERKNS_13AuditIdentityERSt10shared_ptrINS_12AuditBackendEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard10AuditEventD1Ev' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard10AuditEventD2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard10AuditEventD2Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard10ConfigFile15setSettingValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS6_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard10ConfigFile4openERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard10ConfigFile5closeEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard10ConfigFile5writeEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard10ConfigFileC1ERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EE' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard10ConfigFileC2ERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EE' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard10ConfigFileC2ERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard10ConfigFileD1Ev' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard10ConfigFileD2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard10ConfigFileD2Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard10Predicates10isSubsetOfINS_11USBDeviceIDEEEbRKT_S5_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard10Predicates10isSubsetOfINS_16USBInterfaceTypeEEEbRKT_S5_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard10Predicates10isSubsetOfINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEbRKT_SA_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard10Predicates12isSupersetOfINS_11USBDeviceIDEEEbRKT_S5_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard10Predicates12isSupersetOfINS_16USBInterfaceTypeEEEbRKT_S5_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard10Predicates12isSupersetOfINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEbRKT_SA_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard11USBDeviceID11setVendorIDERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard11USBDeviceID12setProductIDERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard11USBDeviceID13checkDeviceIDERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard11USBDeviceIDC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard11USBDeviceIDC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard11USBDeviceIDC1ERKS0_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard11USBDeviceIDC1Ev' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard11USBDeviceIDC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard11USBDeviceIDC2ERKS0_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN8usbguard11USBDeviceIDC1ERKS0_' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard11USBDeviceIDC2Ev' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN8usbguard11USBDeviceIDC1Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard11USBDeviceIDD1Ev' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN8usbguard11USBDeviceIDD2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard11USBDeviceIDD2Ev' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard11USBDeviceIDaSERKS0_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard12AuditBackend6commitERKNS_10AuditEventE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard12AuditBackendC1Ev' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard12AuditBackendC2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard12AuditBackendC2Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard12AuditBackendD0Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard12AuditBackendD1Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard12AuditBackendD2Ev' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard12AuditBackendD1Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard12toRuleStringINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEES6_RKT_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13AuditIdentityC1Eji' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13AuditIdentityC1Ev' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard13AuditIdentityC2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13AuditIdentityC2Eji' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard13AuditIdentityC1Eji' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13AuditIdentityC2Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13DeviceManager11DeviceEventENS0_9EventTypeESt10shared_ptrINS_6DeviceEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13DeviceManager12insertDeviceESt10shared_ptrINS_6DeviceEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13DeviceManager12removeDeviceEj' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13DeviceManager13getDeviceListERKNS_4RuleE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13DeviceManager13getDeviceListEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13DeviceManager15DeviceExceptionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13DeviceManager17eventTypeToStringB5cxx11ENS0_9EventTypeE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13DeviceManager18eventTypeToIntegerENS0_9EventTypeE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13DeviceManager20eventTypeFromIntegerEj' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13DeviceManager20setAuthorizedDefaultENS0_21AuthorizedDefaultTypeE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13DeviceManager29authorizedDefaultTypeToStringB5cxx11ENS0_21AuthorizedDefaultTypeE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13DeviceManager30authorizedDefaultTypeToIntegerENS0_21AuthorizedDefaultTypeE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13DeviceManager31authorizedDefaultTypeFromStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13DeviceManager31setRestoreControllerDeviceStateEb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13DeviceManager32authorizedDefaultTypeFromIntegerEi' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13DeviceManager6createERNS_18DeviceManagerHooksERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13DeviceManager9getDeviceEj' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13DeviceManagerC1ERKS0_' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard13DeviceManagerC2ERKS0_' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13DeviceManagerC1ERNS_18DeviceManagerHooksE' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard13DeviceManagerC2ERNS_18DeviceManagerHooksE' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13DeviceManagerC2ERKS0_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13DeviceManagerC2ERNS_18DeviceManagerHooksE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13DeviceManagerD0Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13DeviceManagerD1Ev' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard13DeviceManagerD2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13DeviceManagerD2Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13DeviceManageraSERKS0_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13MemoryRuleSet4loadEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13MemoryRuleSet4saveEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13MemoryRuleSetC1EPNS_9InterfaceE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13MemoryRuleSetC1ERKS0_' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard13MemoryRuleSetC2ERKS0_' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13MemoryRuleSetC2EPNS_9InterfaceE' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard13MemoryRuleSetC1EPNS_9InterfaceE' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13MemoryRuleSetC2ERKS0_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13MemoryRuleSetD0Ev' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13MemoryRuleSetD1Ev' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN8usbguard13MemoryRuleSetD2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13MemoryRuleSetD2Ev' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13MemoryRuleSetaSERKS0_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13RuleConditionC1EOS0_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13RuleConditionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard13RuleConditionC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13RuleConditionC1ERKS0_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13RuleConditionC1Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13RuleConditionC2EOS0_' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard13RuleConditionC1EOS0_' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13RuleConditionC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13RuleConditionC2ERKS0_' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard13RuleConditionC1ERKS0_' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13RuleConditionC2Ev' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard13RuleConditionC1Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13RuleConditionD1Ev' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN8usbguard13RuleConditionD2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13RuleConditionD2Ev' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13RuleConditionaSEOS0_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13RuleConditionaSERKS0_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13RuleConditiondeEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard13RuleConditionptEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard14KeyValueParser10viewConfigEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard14KeyValueParser11parseStreamERSi' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard14KeyValueParser6getMapB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard14KeyValueParser9parseLineERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard14KeyValueParserC1ERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EERKS7_bb' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard14KeyValueParserC2ERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EERKS7_bb' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard14KeyValueParserC1ERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EEbb' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard14KeyValueParserC2ERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EEbb' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard14KeyValueParserC2ERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EERKS7_bb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard14KeyValueParserC2ERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EEbb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard14KeyValueParserD1Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard14KeyValueParserD2Ev' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard14KeyValueParserD1Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard16USBInterfaceType10typeStringB5cxx11Ehhhh' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard16USBInterfaceTypeC1ERKNS_22USBInterfaceDescriptorEh' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard16USBInterfaceTypeC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard16USBInterfaceTypeC1Ehhhh' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard16USBInterfaceTypeC2Ehhhh' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard16USBInterfaceTypeC1Ev' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard16USBInterfaceTypeC2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard16USBInterfaceTypeC2ERKNS_22USBInterfaceDescriptorEh' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard16USBInterfaceTypeC1ERKNS_22USBInterfaceDescriptorEh' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard16USBInterfaceTypeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard16USBInterfaceTypeC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard16USBInterfaceTypeC2Ehhhh' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard16USBInterfaceTypeC2Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard17RuleConditionBase17getImplementationERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard17RuleConditionBase17getImplementationERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_b' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard17RuleConditionBase4finiEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard17RuleConditionBase4initEPNS_9InterfaceE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard17RuleConditionBase8evaluateERKNS_4RuleE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard17RuleConditionBaseC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_b' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard17RuleConditionBaseC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_b' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard17RuleConditionBaseC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard17RuleConditionBaseC1ERKS0_' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard17RuleConditionBaseC2ERKS0_' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard17RuleConditionBaseC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_b' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard17RuleConditionBaseC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard17RuleConditionBaseC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard17RuleConditionBaseC2ERKS0_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard17RuleConditionBaseD0Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard17RuleConditionBaseD1Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard17RuleConditionBaseD2Ev' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard17RuleConditionBaseD1Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard18DeviceManagerHooks17dmHookDeviceEventENS_13DeviceManager9EventTypeESt10shared_ptrINS_6DeviceEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard19USBDescriptorParser13delDescriptorEh' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard19USBDescriptorParser13setDescriptorEhRKNS_13USBDescriptorE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard19USBDescriptorParser5parseERSi' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard19USBDescriptorParserC1ERNS_24USBDescriptorParserHooksE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard19USBDescriptorParserC2ERNS_24USBDescriptorParserHooksE' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard19USBDescriptorParserC1ERNS_24USBDescriptorParserHooksE' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard19USBDescriptorParserD1Ev' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN8usbguard19USBDescriptorParserD2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard19USBDescriptorParserD2Ev' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard19getDaemonConfigPathB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard19parseRuleFromStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_mb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard24USBDescriptorParserHooks17loadUSBDescriptorEPNS_19USBDescriptorParserEPKNS_13USBDescriptorE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard24USBDescriptorParserHooks18parseUSBDescriptorEPNS_19USBDescriptorParserEPKNS_13USBDescriptorEPS3_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard24USBDescriptorParserHooksC1Ev' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN8usbguard24USBDescriptorParserHooksC2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard24USBDescriptorParserHooksC2Ev' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard24USBParseDeviceDescriptorEPNS_19USBDescriptorParserEPKNS_13USBDescriptorEPS2_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard25USBParseUnknownDescriptorEPNS_19USBDescriptorParserEPKNS_13USBDescriptorEPS2_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard26USBParseEndpointDescriptorEPNS_19USBDescriptorParserEPKNS_13USBDescriptorEPS2_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard27USBParseInterfaceDescriptorEPNS_19USBDescriptorParserEPKNS_13USBDescriptorEPS2_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard28getIPCAccessControlFilesPathB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard31USBParseAudioEndpointDescriptorEPNS_19USBDescriptorParserEPKNS_13USBDescriptorEPS2_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard31USBParseConfigurationDescriptorEPNS_19USBDescriptorParserEPKNS_13USBDescriptorEPS2_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard31getIPCAccessControlFileBasenameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule10fromStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule10setViaPortERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule11setDeviceIDERKNS_11USBDeviceIDE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule13attributeHashB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule13attributeNameB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule13setParentHashERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule14attributeLabelB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule14targetToStringB5cxx11ENS0_6TargetE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule15attributeSerialB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule15targetToIntegerENS0_6TargetE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule16attributeViaPortB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule16targetFromStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule17attributeDeviceIDEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule17targetFromIntegerEj' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule18setWithConnectTypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule19attributeConditionsEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule19attributeParentHashB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule19setOperatorToStringB5cxx11ERKNS0_11SetOperatorE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule21setOperatorFromStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule22attributeWithInterfaceEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule22updateMetaDataCountersEbb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule24attributeWithConnectTypeB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule7setHashERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule7setNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule8internalEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule8setLabelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINS_11USBDeviceIDEE14setSetOperatorENS0_11SetOperatorE' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINS_11USBDeviceIDEE3setERKS2_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINS_11USBDeviceIDEE6appendERKS2_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINS_11USBDeviceIDEEC1EPKc' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN8usbguard4Rule9AttributeINS_11USBDeviceIDEEC2EPKc' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINS_11USBDeviceIDEEC2EPKc' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINS_11USBDeviceIDEED1Ev' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN8usbguard4Rule9AttributeINS_11USBDeviceIDEED2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINS_11USBDeviceIDEED2Ev' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINS_11USBDeviceIDEEaSERKS3_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINS_13RuleConditionEE14setSetOperatorENS0_11SetOperatorE' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINS_13RuleConditionEE6appendEOS2_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINS_13RuleConditionEE6valuesEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINS_13RuleConditionEEC1EPKc' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN8usbguard4Rule9AttributeINS_13RuleConditionEEC2EPKc' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINS_13RuleConditionEEC2EPKc' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINS_13RuleConditionEED1Ev' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN8usbguard4Rule9AttributeINS_13RuleConditionEED2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINS_13RuleConditionEED2Ev' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINS_13RuleConditionEEaSERKS3_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINS_16USBInterfaceTypeEE14setSetOperatorENS0_11SetOperatorE' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINS_16USBInterfaceTypeEE3setERKSt6vectorIS2_SaIS2_EENS0_11SetOperatorE' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINS_16USBInterfaceTypeEE6appendERKS2_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINS_16USBInterfaceTypeEEC1EPKc' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINS_16USBInterfaceTypeEEC2EPKc' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN8usbguard4Rule9AttributeINS_16USBInterfaceTypeEEC1EPKc' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINS_16USBInterfaceTypeEED1Ev' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN8usbguard4Rule9AttributeINS_16USBInterfaceTypeEED2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINS_16USBInterfaceTypeEED2Ev' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINS_16USBInterfaceTypeEEaSERKS3_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE14setSetOperatorENS0_11SetOperatorE' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE3setERKS7_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE6appendERKS7_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC1EPKc' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2EPKc' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN8usbguard4Rule9AttributeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC1EPKc' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED1Ev' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN8usbguard4Rule9AttributeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9AttributeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEaSERKS8_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9appliesToERKS0_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9setRuleIDEj' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9setSerialERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4Rule9setTargetENS0_6TargetE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4RuleC1ERKS0_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4RuleC1Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4RuleC2ERKS0_' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard4RuleC1ERKS0_' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4RuleC2Ev' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard4RuleC1Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4RuleD1Ev' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard4RuleD2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4RuleD2Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard4RuleaSERKS0_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard5Audit10setBackendESt10unique_ptrINS_12AuditBackendESt14default_deleteIS2_EE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard5Audit10setHidePIIEb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard5Audit11deviceEventERKNS_13AuditIdentityESt10shared_ptrINS_6DeviceEENS_13DeviceManager9EventTypeE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard5Audit11deviceEventERKNS_13AuditIdentityESt10shared_ptrINS_6DeviceEES6_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard5Audit11deviceEventESt10shared_ptrINS_6DeviceEENS_13DeviceManager9EventTypeE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard5Audit11deviceEventESt10shared_ptrINS_6DeviceEES3_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard5Audit11policyEventERKNS_13AuditIdentityESt10shared_ptrINS_4RuleEENS_6Policy9EventTypeE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard5Audit11policyEventERKNS_13AuditIdentityESt10shared_ptrINS_4RuleEES6_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard5Audit11policyEventERKNS_13AuditIdentityESt10shared_ptrINS_6DeviceEENS_4Rule6TargetES8_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard5Audit11policyEventERKNS_13AuditIdentityESt10shared_ptrINS_6DeviceEENS_6Policy9EventTypeE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard5Audit11policyEventESt10shared_ptrINS_4RuleEENS_6Policy9EventTypeE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard5Audit11policyEventESt10shared_ptrINS_4RuleEES3_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard5Audit11policyEventESt10shared_ptrINS_6DeviceEENS_4Rule6TargetES5_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard5Audit11policyEventESt10shared_ptrINS_6DeviceEENS_6Policy9EventTypeE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard5AuditC1ERKNS_13AuditIdentityE' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard5AuditC2ERKNS_13AuditIdentityE' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard5AuditC2ERKNS_13AuditIdentityE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Device10updateHashEPKvm' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Device10updateHashERSim' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Device11setDeviceIDERKNS_11USBDeviceIDE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Device11setParentIDEj' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Device12finalizeHashB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Device13getDeviceRuleEbbb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Device13setParentHashERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Device14initializeHashEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Device14refDeviceMutexEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Device14setConnectTypeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Device20loadDeviceDescriptorEPNS_19USBDescriptorParserEPKNS_13USBDescriptorE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Device22loadEndpointDescriptorEPNS_19USBDescriptorParserEPKNS_13USBDescriptorE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Device23loadInterfaceDescriptorEPNS_19USBDescriptorParserEPKNS_13USBDescriptorE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Device24refMutableInterfaceTypesEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Device27loadConfigurationDescriptorEPNS_19USBDescriptorParserEPKNS_13USBDescriptorE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Device5setIDEj' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Device7setNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Device7setPortERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Device9setSerialERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Device9setTargetENS_4Rule6TargetE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6DeviceC1ERKS0_' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard6DeviceC2ERKS0_' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6DeviceC1ERNS_13DeviceManagerE' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard6DeviceC2ERNS_13DeviceManagerE' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6DeviceC2ERKS0_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6DeviceC2ERNS_13DeviceManagerE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6DeviceD0Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6DeviceD1Ev' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard6DeviceD2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6DeviceD2Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6DeviceaSERKS0_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Logger10setEnabledEbNS_9LogStream5LevelE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Logger12setAuditFileEbRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Logger13addOutputSinkERSt10unique_ptrINS_7LogSinkESt14default_deleteIS2_EE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Logger13delOutputSinkERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Logger13setOutputFileEbRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Logger15setOutputSyslogEbRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Logger16setOutputConsoleEb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Logger20addOutputSink_nolockERSt10unique_ptrINS_7LogSinkESt14default_deleteIS2_EE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Logger20delOutputSink_nolockERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Logger5writeERKNS_9LogStream6SourceENS1_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Logger9timestampB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6LoggerC1Ev' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard6LoggerC2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6LoggerC2Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6LoggerD1Ev' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard6LoggerD2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6LoggerD2Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6LoggerclERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiS8_NS_9LogStream5LevelE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Policy10appendRuleERKNS_4RuleEj' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Policy10getRuleSetEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Policy10removeRuleEj' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Policy10setRuleSetESt6vectorISt10shared_ptrINS_7RuleSetEESaIS4_EE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Policy10upsertRuleERKNS_4RuleES3_b' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Policy16setDefaultTargetENS_4Rule6TargetE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Policy17eventTypeToStringB5cxx11ENS0_9EventTypeE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Policy4saveEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Policy7getRuleEj' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Policy8assignIDESt10shared_ptrINS_4RuleEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Policy8assignIDEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6Policy8getRulesEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6PolicyC1Ev' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard6PolicyC2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard6PolicyC2Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard7LogSinkC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard7LogSinkC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard7LogSinkC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard7LogSinkD0Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard7LogSinkD1Ev' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard7LogSinkD2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard7LogSinkD2Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard7RuleSet10appendRuleERKNS_4RuleEjb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard7RuleSet10isWritableEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard7RuleSet10removeRuleEj' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard7RuleSet10upsertRuleERKNS_4RuleES3_b' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard7RuleSet11setWritableEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard7RuleSet13clearWritableEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard7RuleSet16setDefaultTargetENS_4Rule6TargetE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard7RuleSet7getRuleEj' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard7RuleSet8assignIDESt10shared_ptrINS_4RuleEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard7RuleSet8assignIDEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard7RuleSet8getRulesEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard7RuleSetC1EPNS_9InterfaceE' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard7RuleSetC2EPNS_9InterfaceE' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard7RuleSetC1ERKS0_' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard7RuleSetC2ERKS0_' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard7RuleSetC2EPNS_9InterfaceE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard7RuleSetC2ERKS0_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard7RuleSetD0Ev' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard7RuleSetD1Ev' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN8usbguard7RuleSetD2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard7RuleSetD2Ev' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard7RuleSetaSERKS0_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard8LDAPUtil13serializeLDIFESt6vectorISt10shared_ptrINS_7RuleSetEESaIS4_EERSoRSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESE_St4lessISE_ESaISt4pairIKSE_SE_EEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard8LDAPUtil6toLDIFESt10shared_ptrIKNS_4RuleEERSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_St4lessISB_ESaISt4pairIKSB_SB_EEEb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9ExceptionC1ERKS0_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN8usbguard9ExceptionC2ERKS0_' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9ExceptionC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN8usbguard9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9ExceptionC2ERKS0_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9ExceptionD0Ev' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9ExceptionD1Ev' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN8usbguard9ExceptionD2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9ExceptionD2Ev' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCClient10appendRuleERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCClient10disconnectEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCClient10removeRuleEj' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCClient11listDevicesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCClient12IPCConnectedEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCClient12getParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCClient12setParameterERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCClient15IPCDisconnectedEbRKNS_12IPCExceptionE' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCClient16ExceptionMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCClient17applyDevicePolicyEjNS_4Rule6TargetEb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCClient19DevicePolicyAppliedEjNS_4Rule6TargetERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCClient19DevicePolicyChangedEjNS_4Rule6TargetES2_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCClient19checkIPCPermissionsERKNS_9IPCServer13AccessControl7SectionERKNS2_9PrivilegeE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCClient21DevicePresenceChangedEjNS_13DeviceManager9EventTypeENS_4Rule6TargetERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCClient24PropertyParameterChangedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCClient4waitEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCClient7connectEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCClient9listRulesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCClientC1Eb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCClientC2Eb' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard9IPCClientC1Eb' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCClientD0Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCClientD1Ev' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard9IPCClientD2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCClientD2Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer13AccessControl12setPrivilegeENS1_7SectionENS1_9PrivilegeE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer13AccessControl15sectionToStringB5cxx11ENS1_7SectionE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer13AccessControl17privilegeToStringB5cxx11ENS1_9PrivilegeE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer13AccessControl17sectionFromStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer13AccessControl19privilegeFromStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer13AccessControl4loadERSi' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer13AccessControl5clearEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer13AccessControl5mergeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer13AccessControl5mergeERKS1_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer13AccessControlC1ENS1_7SectionENS1_9PrivilegeE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer13AccessControlC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer13AccessControlC1ERKS1_' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard9IPCServer13AccessControlC2ERKS1_' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer13AccessControlC1Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer13AccessControlC2ENS1_7SectionENS1_9PrivilegeE' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard9IPCServer13AccessControlC1ENS1_7SectionENS1_9PrivilegeE' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer13AccessControlC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard9IPCServer13AccessControlC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer13AccessControlC2ERKS1_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer13AccessControlC2Ev' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard9IPCServer13AccessControlC1Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer13AccessControlD1Ev' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN8usbguard9IPCServer13AccessControlD2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer13AccessControlD2Ev' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer13AccessControlaSERKS1_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer13addAllowedGIDEjRKNS0_13AccessControlE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer13addAllowedUIDEjRKNS0_13AccessControlE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer16ExceptionMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer18addAllowedUsernameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_13AccessControlE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer19DevicePolicyAppliedEjNS_4Rule6TargetERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer19DevicePolicyChangedEjNS_4Rule6TargetES2_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer19addAllowedGroupnameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_13AccessControlE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer21DevicePresenceChangedEjNS_13DeviceManager9EventTypeENS_4Rule6TargetERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer22checkAccessControlNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer24PropertyParameterChangedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer4stopEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServer5startEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServerC1Ev' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard9IPCServerC2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServerC2Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServerD0Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServerD1Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9IPCServerD2Ev' type='func-type' binding='global-binding' visibility='default-visibility' alias='_ZN8usbguard9IPCServerD1Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9InterfaceC1Ev' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN8usbguard9InterfaceC2Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9InterfaceC2Ev' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9LogStream13levelToStringB5cxx11ENS0_5LevelE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9LogStream14sourceToStringB5cxx11ERKNS0_6SourceE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9LogStream6SourceC1ERKS1_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN8usbguard9LogStream6SourceC2ERKS1_' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9LogStream6SourceC2ERKS1_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9LogStream6SourceD1Ev' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9LogStream6SourceD2Ev' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN8usbguard9LogStream6SourceD1Ev' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9LogStreamC1ERKS0_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9LogStreamC1ERNS_6LoggerERKNS0_6SourceENS0_5LevelE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9LogStreamC2ERKS0_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9LogStreamC2ERNS_6LoggerERKNS0_6SourceENS0_5LevelE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9LogStreamD0Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9LogStreamD1Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN8usbguard9LogStreamD2Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx11char_traitsIcE2eqERKcS3_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx11char_traitsIcE6lengthEPKc' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEC1EiSt13_Ios_Openmodem' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEC2EiSt13_Ios_Openmodem' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEEC1EiSt13_Ios_Openmodem' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEED0Ev' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEED1Ev' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEED2Ev' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx13stdio_filebufIcSt11char_traitsIcEED2Ev' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKN8usbguard11USBDeviceIDESt6vectorIS2_SaIS2_EEEC1ERKS4_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPKN8usbguard11USBDeviceIDESt6vectorIS2_SaIS2_EEEC2ERKS4_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKN8usbguard11USBDeviceIDESt6vectorIS2_SaIS2_EEEC2ERKS4_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKN8usbguard11USBDeviceIDESt6vectorIS2_SaIS2_EEEppEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKN8usbguard13RuleConditionESt6vectorIS2_SaIS2_EEEC1ERKS4_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPKN8usbguard13RuleConditionESt6vectorIS2_SaIS2_EEEC2ERKS4_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKN8usbguard13RuleConditionESt6vectorIS2_SaIS2_EEEC2ERKS4_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKN8usbguard13RuleConditionESt6vectorIS2_SaIS2_EEEppEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKN8usbguard16USBInterfaceTypeESt6vectorIS2_SaIS2_EEEC1ERKS4_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPKN8usbguard16USBInterfaceTypeESt6vectorIS2_SaIS2_EEEC2ERKS4_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKN8usbguard16USBInterfaceTypeESt6vectorIS2_SaIS2_EEEC2ERKS4_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKN8usbguard16USBInterfaceTypeESt6vectorIS2_SaIS2_EEEppEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKN8usbguard4RuleESt6vectorIS2_SaIS2_EEEC1ERKS4_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKN8usbguard4RuleESt6vectorIS2_SaIS2_EEEC2ERKS4_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPKN8usbguard4RuleESt6vectorIS2_SaIS2_EEEC1ERKS4_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEC1ERKS8_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEC2ERKS8_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEC1IPS6_vEERKNS0_IT_SB_EE' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEC2IPS6_vEERKNS0_IT_SB_EE' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEC2ERKS8_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEC2IPS6_vEERKNS0_IT_SB_EE' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEppEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrIN8usbguard4RuleEESt6vectorIS4_SaIS4_EEEC1ERKS6_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrIN8usbguard4RuleEESt6vectorIS4_SaIS4_EEEC2ERKS6_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrIN8usbguard4RuleEESt6vectorIS4_SaIS4_EEEC1Ev' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrIN8usbguard4RuleEESt6vectorIS4_SaIS4_EEEC2Ev' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrIN8usbguard4RuleEESt6vectorIS4_SaIS4_EEEC1IPS4_vEERKNS0_IT_S9_EE' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrIN8usbguard4RuleEESt6vectorIS4_SaIS4_EEEC2IPS4_vEERKNS0_IT_S9_EE' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrIN8usbguard4RuleEESt6vectorIS4_SaIS4_EEEC2ERKS6_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrIN8usbguard4RuleEESt6vectorIS4_SaIS4_EEEC2Ev' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrIN8usbguard4RuleEESt6vectorIS4_SaIS4_EEEC2IPS4_vEERKNS0_IT_S9_EE' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrIN8usbguard4RuleEESt6vectorIS4_SaIS4_EEEppEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrIN8usbguard7RuleSetEESt6vectorIS4_SaIS4_EEEC1ERKS6_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrIN8usbguard7RuleSetEESt6vectorIS4_SaIS4_EEEC2ERKS6_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrIN8usbguard7RuleSetEESt6vectorIS4_SaIS4_EEEC2ERKS6_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrIN8usbguard7RuleSetEESt6vectorIS4_SaIS4_EEEppEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8usbguard13DeviceManager21AuthorizedDefaultTypeEESt6vectorISB_SaISB_EEEC1ERKSD_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8usbguard13DeviceManager21AuthorizedDefaultTypeEESt6vectorISB_SaISB_EEEC2ERKSD_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8usbguard13DeviceManager21AuthorizedDefaultTypeEESt6vectorISB_SaISB_EEEC2ERKSD_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8usbguard13DeviceManager21AuthorizedDefaultTypeEESt6vectorISB_SaISB_EEEppEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8usbguard4Rule11SetOperatorEESt6vectorISB_SaISB_EEEC1ERKSD_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8usbguard4Rule11SetOperatorEESt6vectorISB_SaISB_EEEC2ERKSD_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8usbguard4Rule11SetOperatorEESt6vectorISB_SaISB_EEEC2ERKSD_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8usbguard4Rule11SetOperatorEESt6vectorISB_SaISB_EEEppEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8usbguard4Rule6TargetEESt6vectorISB_SaISB_EEEC1ERKSD_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8usbguard4Rule6TargetEESt6vectorISB_SaISB_EEEC2ERKSD_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8usbguard4Rule6TargetEESt6vectorISB_SaISB_EEEC2ERKSD_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8usbguard4Rule6TargetEESt6vectorISB_SaISB_EEEppEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8usbguard9IPCServer13AccessControl7SectionEESt6vectorISC_SaISC_EEEC1ERKSE_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8usbguard9IPCServer13AccessControl7SectionEESt6vectorISC_SaISC_EEEC2ERKSE_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8usbguard9IPCServer13AccessControl7SectionEESt6vectorISC_SaISC_EEEC2ERKSE_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8usbguard9IPCServer13AccessControl7SectionEESt6vectorISC_SaISC_EEEppEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8usbguard9IPCServer13AccessControl9PrivilegeEESt6vectorISC_SaISC_EEEC1ERKSE_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8usbguard9IPCServer13AccessControl9PrivilegeEESt6vectorISC_SaISC_EEEC2ERKSE_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8usbguard9IPCServer13AccessControl9PrivilegeEESt6vectorISC_SaISC_EEEC2ERKSE_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8usbguard9IPCServer13AccessControl9PrivilegeEESt6vectorISC_SaISC_EEEppEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairIjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt6vectorIS8_SaIS8_EEEC1ERKSA_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairIjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt6vectorIS8_SaIS8_EEEC2ERKSA_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairIjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt6vectorIS8_SaIS8_EEEC2ERKSA_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKSt4pairIjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt6vectorIS8_SaIS8_EEEppEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC1ERKS2_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2ERKS2_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC1IPcvEERKNS0_IT_S8_EE' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2ERKS2_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2IPcvEERKNS0_IT_S8_EE' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC1IPcvEERKNS0_IT_S8_EE' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEppEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPN8usbguard11USBDeviceIDESt6vectorIS2_SaIS2_EEEC1ERKS3_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPN8usbguard11USBDeviceIDESt6vectorIS2_SaIS2_EEEC2ERKS3_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPN8usbguard11USBDeviceIDESt6vectorIS2_SaIS2_EEEC2ERKS3_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPN8usbguard11USBDeviceIDESt6vectorIS2_SaIS2_EEEppEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPN8usbguard13RuleConditionESt6vectorIS2_SaIS2_EEEC1ERKS3_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPN8usbguard13RuleConditionESt6vectorIS2_SaIS2_EEEC2ERKS3_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPN8usbguard13RuleConditionESt6vectorIS2_SaIS2_EEEC2ERKS3_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPN8usbguard13RuleConditionESt6vectorIS2_SaIS2_EEEppEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPN8usbguard13USBDescriptorESt6vectorIS2_SaIS2_EEEC1ERKS3_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPN8usbguard13USBDescriptorESt6vectorIS2_SaIS2_EEEC2ERKS3_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPN8usbguard13USBDescriptorESt6vectorIS2_SaIS2_EEEC1ERKS3_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPN8usbguard13USBDescriptorESt6vectorIS2_SaIS2_EEEppEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPN8usbguard16USBInterfaceTypeESt6vectorIS2_SaIS2_EEEC1ERKS3_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPN8usbguard16USBInterfaceTypeESt6vectorIS2_SaIS2_EEEC2ERKS3_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPN8usbguard16USBInterfaceTypeESt6vectorIS2_SaIS2_EEEC2ERKS3_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPN8usbguard4RuleESt6vectorIS2_SaIS2_EEEC1ERKS3_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPN8usbguard4RuleESt6vectorIS2_SaIS2_EEEC2ERKS3_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPN8usbguard4RuleESt6vectorIS2_SaIS2_EEEC2ERKS3_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPN8usbguard4RuleESt6vectorIS2_SaIS2_EEEppEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEC1ERKS7_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEC2ERKS7_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEC2ERKS7_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEmmEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEppEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPSt10shared_ptrIKN8usbguard4RuleEESt6vectorIS5_SaIS5_EEEC1ERKS6_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPSt10shared_ptrIKN8usbguard4RuleEESt6vectorIS5_SaIS5_EEEC2ERKS6_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPSt10shared_ptrIKN8usbguard4RuleEESt6vectorIS5_SaIS5_EEEC2ERKS6_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPSt10shared_ptrIKN8usbguard4RuleEESt6vectorIS5_SaIS5_EEEppEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPSt10shared_ptrIN8usbguard4RuleEESt6vectorIS4_SaIS4_EEEC1ERKS5_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPSt10shared_ptrIN8usbguard4RuleEESt6vectorIS4_SaIS4_EEEC2ERKS5_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPSt10shared_ptrIN8usbguard4RuleEESt6vectorIS4_SaIS4_EEEC1ERKS5_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPSt10shared_ptrIN8usbguard4RuleEESt6vectorIS4_SaIS4_EEEppEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPSt10shared_ptrIN8usbguard6DeviceEESt6vectorIS4_SaIS4_EEEC1ERKS5_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPSt10shared_ptrIN8usbguard6DeviceEESt6vectorIS4_SaIS4_EEEC2ERKS5_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPSt10shared_ptrIN8usbguard6DeviceEESt6vectorIS4_SaIS4_EEEC2ERKS5_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPSt10shared_ptrIN8usbguard6DeviceEESt6vectorIS4_SaIS4_EEEppEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPSt10shared_ptrIN8usbguard7RuleSetEESt6vectorIS4_SaIS4_EEEC1ERKS5_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPSt10shared_ptrIN8usbguard7RuleSetEESt6vectorIS4_SaIS4_EEEC2ERKS5_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPSt10shared_ptrIN8usbguard7RuleSetEESt6vectorIS4_SaIS4_EEEC2ERKS5_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPSt10shared_ptrIN8usbguard7RuleSetEESt6vectorIS4_SaIS4_EEEppEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ESt6vectorIS8_SaIS8_EEEC1ERKS9_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ESt6vectorIS8_SaIS8_EEEC2ERKS9_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ESt6vectorIS8_SaIS8_EEEC2ERKS9_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ESt6vectorIS8_SaIS8_EEEmmEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ESt6vectorIS8_SaIS8_EEEppEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIhmESt6vectorIS2_SaIS2_EEEC1ERKS3_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIhmESt6vectorIS2_SaIS2_EEEC2ERKS3_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIhmESt6vectorIS2_SaIS2_EEEC2ERKS3_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIhmESt6vectorIS2_SaIS2_EEEmmEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIhmESt6vectorIS2_SaIS2_EEEppEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC1ERKS1_' type='func-type' binding='weak-binding' visibility='default-visibility' alias='_ZN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2ERKS1_' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2ERKS1_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxx6__stoaIddcJEEET0_PFT_PKT1_PPS3_DpT2_EPKcS5_PmS9_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxeqIPKN8usbguard4RuleESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxeqIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxeqIPKSt10shared_ptrIN8usbguard4RuleEEPS4_St6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T1_EERKNSB_IT0_SD_EE' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxeqIPKSt10shared_ptrIN8usbguard7RuleSetEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxeqIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxeqIPSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESI_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxeqIPSt4pairIhmESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxgeIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxltIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEbRKNS_17__normal_iteratorIT_T0_EESE_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxltIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxltIPSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESI_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxltIPSt4pairIhmESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxmiIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSF_SI_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxmiIPKSt10shared_ptrIN8usbguard4RuleEEPS4_St6vectorIS4_SaIS4_EEEEDTmicldtfp_4baseEcldtfp0_4baseEERKNS_17__normal_iteratorIT_T1_EERKNSC_IT0_SE_EE' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxmiIPKSt10shared_ptrIN8usbguard4RuleEESt6vectorIS4_SaIS4_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSD_SG_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxmiIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSC_SF_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxmiIPN8usbguard11USBDeviceIDESt6vectorIS2_SaIS2_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSA_SD_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxmiIPN8usbguard13RuleConditionESt6vectorIS2_SaIS2_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSA_SD_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxmiIPN8usbguard13USBDescriptorESt6vectorIS2_SaIS2_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSA_SD_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxmiIPN8usbguard16USBInterfaceTypeESt6vectorIS2_SaIS2_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSA_SD_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxmiIPN8usbguard4RuleESt6vectorIS2_SaIS2_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSA_SD_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxmiIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSE_SH_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxmiIPSt10shared_ptrIKN8usbguard4RuleEESt6vectorIS5_SaIS5_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSD_SG_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxmiIPSt10shared_ptrIN8usbguard4RuleEESt6vectorIS4_SaIS4_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSC_SF_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxmiIPSt10shared_ptrIN8usbguard6DeviceEESt6vectorIS4_SaIS4_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSC_SF_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxmiIPSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ESt6vectorIS8_SaIS8_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSG_SJ_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxmiIPSt4pairIhmESt6vectorIS2_SaIS2_EEEENS_17__normal_iteratorIT_T0_E15difference_typeERKSA_SD_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxneIPKN8usbguard11USBDeviceIDESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxneIPKN8usbguard13RuleConditionESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxneIPKN8usbguard16USBInterfaceTypeESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxneIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxneIPKSt10shared_ptrIN8usbguard4RuleEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxneIPKSt10shared_ptrIN8usbguard7RuleSetEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxneIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8usbguard13DeviceManager21AuthorizedDefaultTypeEESt6vectorISB_SaISB_EEEEbRKNS_17__normal_iteratorIT_T0_EESM_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxneIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8usbguard4Rule11SetOperatorEESt6vectorISB_SaISB_EEEEbRKNS_17__normal_iteratorIT_T0_EESM_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxneIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8usbguard4Rule6TargetEESt6vectorISB_SaISB_EEEEbRKNS_17__normal_iteratorIT_T0_EESM_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxneIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8usbguard9IPCServer13AccessControl7SectionEESt6vectorISC_SaISC_EEEEbRKNS_17__normal_iteratorIT_T0_EESN_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxneIPKSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8usbguard9IPCServer13AccessControl9PrivilegeEESt6vectorISC_SaISC_EEEEbRKNS_17__normal_iteratorIT_T0_EESN_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxneIPKSt4pairIjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESJ_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxneIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEbRKNS_17__normal_iteratorIT_T0_EESE_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxneIPN8usbguard11USBDeviceIDESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxneIPN8usbguard13RuleConditionESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxneIPN8usbguard13USBDescriptorESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxneIPN8usbguard4RuleESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxneIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxneIPSt10shared_ptrIKN8usbguard4RuleEESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxneIPSt10shared_ptrIN8usbguard4RuleEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxneIPSt10shared_ptrIN8usbguard6DeviceEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxneIPSt10shared_ptrIN8usbguard7RuleSetEESt6vectorIS4_SaIS4_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxneIPSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESI_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZN9__gnu_cxxneIPSt4pairIhmESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard10AuditEvent4keysB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard10AuditEvent8identityEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard10ConfigFile15getSettingValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard10ConfigFile15hasSettingValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard11USBDeviceID10isSubsetOfERKS0_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard11USBDeviceID11getVendorIDB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard11USBDeviceID12getProductIDB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard11USBDeviceID12toRuleStringB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard11USBDeviceID8toStringB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard13AuditIdentity3pidEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard13AuditIdentity3uidEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard13AuditIdentity8toStringB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard13DeviceManager20getAuthorizedDefaultEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard13DeviceManager31getRestoreControllerDeviceStateEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard13RuleCondition12toRuleStringB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard16USBInterfaceType10typeStringB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard16USBInterfaceType12toRuleStringB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard16USBInterfaceType9appliesToERKS0_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard16USBInterfaceTypeeqERKS0_' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard17RuleConditionBase10identifierB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard17RuleConditionBase12hasParameterEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard17RuleConditionBase12toRuleStringB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard17RuleConditionBase8toStringB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard17RuleConditionBase9isNegatedEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard17RuleConditionBase9parameterB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard19USBDescriptorParser13getDescriptorEh' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard19USBDescriptorParser14haveDescriptorEh' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard19USBDescriptorParser19getDescriptorCountsEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule10getViaPortB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule10isImplicitEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule11getDeviceIDEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule13attributeHashB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule13attributeNameB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule13getParentHashB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule14attributeLabelB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule15attributeSerialB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule16attributeViaPortB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule17attributeDeviceIDEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule18getWithConnectTypeB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule19attributeConditionsEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule19attributeParentHashB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule22attributeWithInterfaceEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule24attributeWithConnectTypeB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule7getHashB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule7getNameB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule8getLabelB5cxx11Ev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule8internalEv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule8toStringB5cxx11Ebb' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule9AttributeINS_11USBDeviceIDEE11setOperatorEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule9AttributeINS_11USBDeviceIDEE12toRuleStringB5cxx11Ev' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule9AttributeINS_11USBDeviceIDEE13setSolveAllOfERKSt6vectorIS2_SaIS2_EES8_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule9AttributeINS_11USBDeviceIDEE13setSolveOneOfERKSt6vectorIS2_SaIS2_EES8_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule9AttributeINS_11USBDeviceIDEE14setSolveEqualsERKSt6vectorIS2_SaIS2_EES8_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule9AttributeINS_11USBDeviceIDEE14setSolveNoneOfERKSt6vectorIS2_SaIS2_EES8_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule9AttributeINS_11USBDeviceIDEE16setSolveMatchAllERKSt6vectorIS2_SaIS2_EES8_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule9AttributeINS_11USBDeviceIDEE21setSolveEqualsOrderedERKSt6vectorIS2_SaIS2_EES8_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule9AttributeINS_11USBDeviceIDEE3getEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule9AttributeINS_11USBDeviceIDEE5countEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule9AttributeINS_11USBDeviceIDEE5emptyEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule9AttributeINS_11USBDeviceIDEE7getNameB5cxx11Ev' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule9AttributeINS_11USBDeviceIDEE9appliesToERKS3_' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule9AttributeINS_13RuleConditionEE11setOperatorEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule9AttributeINS_13RuleConditionEE12toRuleStringB5cxx11Ev' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule9AttributeINS_13RuleConditionEE5countEv' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
<elf-symbol name='_ZNK8usbguard4Rule9AttributeINS_13RuleConditionEE5emptyEv' type='func-type' bin
gitextract__08spewc/ ├── .gitattributes ├── .github/ │ ├── dependabot.yml │ └── workflows/ │ ├── build.yml │ ├── docker.yml │ └── polkit.yml ├── .gitignore ├── .gitmodules ├── .lgtm.yml ├── CHANGELOG.md ├── LICENSE ├── Makefile.am ├── README.adoc ├── RELEASE_PROCESS.md ├── VERSION ├── abi-ref/ │ └── libusbguard.so.abi ├── autogen.sh ├── configure.ac ├── doc/ │ └── man/ │ ├── .gitignore │ ├── example-allow-device.adoc │ ├── example-initial-policy.adoc │ ├── footer.adoc │ ├── usbguard-daemon.8.adoc │ ├── usbguard-daemon.conf.5.adoc │ ├── usbguard-dbus.8.adoc │ ├── usbguard-ldap.conf.5.adoc │ ├── usbguard-rules.conf.5.adoc │ └── usbguard.1.adoc ├── libusbguard.pc.in ├── m4/ │ ├── ax_check_compile_flag.m4 │ ├── ax_pthread.m4 │ └── libgcrypt.m4 ├── scripts/ │ ├── astyle.sh │ ├── bash_completion/ │ │ └── usbguard │ ├── copr-build-srpm.sh │ ├── docker/ │ │ ├── build_on_alpine_linux_3_21.Dockerfile │ │ ├── build_on_centos_8_2.Dockerfile │ │ ├── build_on_debian_buster_with_gcc_9_2.Dockerfile │ │ ├── build_on_ubuntu_22_04.Dockerfile │ │ └── build_on_ubuntu_25_04.Dockerfile │ ├── ldap/ │ │ ├── ldap.sh │ │ ├── schema2ldif.pl │ │ ├── setup.ldif │ │ ├── usbguard-policy.ldif │ │ ├── usbguard.ldif │ │ └── usbguard.schema │ ├── modeline.vim │ ├── reformat-sources.sh │ ├── rule-generator.sh │ ├── usb-descriptor-collect.sh │ └── usbguard-zsh-completion ├── src/ │ ├── .gitignore │ ├── CLI/ │ │ ├── IPCSignalWatcher.cpp │ │ ├── IPCSignalWatcher.hpp │ │ ├── PolicyGenerator.cpp │ │ ├── PolicyGenerator.hpp │ │ ├── usbguard-add-user.cpp │ │ ├── usbguard-add-user.hpp │ │ ├── usbguard-allow-device.cpp │ │ ├── usbguard-allow-device.hpp │ │ ├── usbguard-append-rule.cpp │ │ ├── usbguard-append-rule.hpp │ │ ├── usbguard-apply-device-policy.cpp │ │ ├── usbguard-apply-device-policy.hpp │ │ ├── usbguard-block-device.cpp │ │ ├── usbguard-block-device.hpp │ │ ├── usbguard-generate-policy.cpp │ │ ├── usbguard-generate-policy.hpp │ │ ├── usbguard-get-parameter.cpp │ │ ├── usbguard-get-parameter.hpp │ │ ├── usbguard-list-devices.cpp │ │ ├── usbguard-list-devices.hpp │ │ ├── usbguard-list-rules.cpp │ │ ├── usbguard-list-rules.hpp │ │ ├── usbguard-print-version.cpp │ │ ├── usbguard-print-version.hpp │ │ ├── usbguard-read-descriptor.cpp │ │ ├── usbguard-read-descriptor.hpp │ │ ├── usbguard-reject-device.cpp │ │ ├── usbguard-reject-device.hpp │ │ ├── usbguard-remove-rule.cpp │ │ ├── usbguard-remove-rule.hpp │ │ ├── usbguard-remove-user.cpp │ │ ├── usbguard-remove-user.hpp │ │ ├── usbguard-rule-parser.cpp │ │ ├── usbguard-set-parameter.cpp │ │ ├── usbguard-set-parameter.hpp │ │ ├── usbguard-watch.cpp │ │ ├── usbguard-watch.hpp │ │ ├── usbguard.cpp │ │ └── usbguard.hpp │ ├── Common/ │ │ ├── ByteOrder.hpp │ │ ├── FDInputStream.hpp │ │ ├── LDAPUtil.cpp │ │ ├── LDAPUtil.hpp │ │ ├── Thread.hpp │ │ ├── Utility.cpp │ │ └── Utility.hpp │ ├── DBus/ │ │ ├── .gitignore │ │ ├── DBusBridge.cpp │ │ ├── DBusBridge.hpp │ │ ├── DBusInterface.xml │ │ ├── README.adoc │ │ ├── gdbus-server.cpp │ │ ├── generate-documentation.sh │ │ ├── org.usbguard1.conf │ │ ├── org.usbguard1.policy │ │ ├── org.usbguard1.service.in │ │ └── usbguard-dbus.service.in │ ├── Daemon/ │ │ ├── Daemon.cpp │ │ ├── Daemon.hpp │ │ ├── FileAuditBackend.cpp │ │ ├── FileAuditBackend.hpp │ │ ├── FileRuleSet.cpp │ │ ├── FileRuleSet.hpp │ │ ├── LDAPHandler.cpp │ │ ├── LDAPHandler.hpp │ │ ├── LDAPRuleSet.cpp │ │ ├── LDAPRuleSet.hpp │ │ ├── LinuxAuditBackend.cpp │ │ ├── LinuxAuditBackend.hpp │ │ ├── NSHandler.cpp │ │ ├── NSHandler.hpp │ │ ├── RuleSetFactory.cpp │ │ ├── RuleSetFactory.hpp │ │ ├── Seccomp.c │ │ ├── Seccomp.h │ │ └── main.cpp │ ├── Library/ │ │ ├── AllowedMatchesCondition.cpp │ │ ├── AllowedMatchesCondition.hpp │ │ ├── Base64.cpp │ │ ├── Base64.hpp │ │ ├── ConfigFilePrivate.cpp │ │ ├── ConfigFilePrivate.hpp │ │ ├── DeviceBase.cpp │ │ ├── DeviceBase.hpp │ │ ├── DeviceManagerBase.cpp │ │ ├── DeviceManagerBase.hpp │ │ ├── DeviceManagerPrivate.cpp │ │ ├── DeviceManagerPrivate.hpp │ │ ├── DevicePrivate.cpp │ │ ├── DevicePrivate.hpp │ │ ├── FixedStateCondition.cpp │ │ ├── FixedStateCondition.hpp │ │ ├── Hash.cpp │ │ ├── Hash.hpp │ │ ├── IPC/ │ │ │ ├── .gitignore │ │ │ ├── Devices.proto │ │ │ ├── Exception.proto │ │ │ ├── Message.proto │ │ │ ├── Parameter.proto │ │ │ ├── Policy.proto │ │ │ └── Rule.proto │ │ ├── IPCClientPrivate.cpp │ │ ├── IPCClientPrivate.hpp │ │ ├── IPCPrivate.cpp │ │ ├── IPCPrivate.hpp │ │ ├── IPCServerPrivate.cpp │ │ ├── IPCServerPrivate.hpp │ │ ├── Init.cpp │ │ ├── KeyValueParserPrivate.cpp │ │ ├── KeyValueParserPrivate.hpp │ │ ├── LocaltimeCondition.cpp │ │ ├── LocaltimeCondition.hpp │ │ ├── RandomStateCondition.cpp │ │ ├── RandomStateCondition.hpp │ │ ├── RuleAppliedCondition.cpp │ │ ├── RuleAppliedCondition.hpp │ │ ├── RuleEvaluatedCondition.cpp │ │ ├── RuleEvaluatedCondition.hpp │ │ ├── RuleParser/ │ │ │ ├── Actions.hpp │ │ │ └── Grammar.hpp │ │ ├── RulePrivate.cpp │ │ ├── RulePrivate.hpp │ │ ├── SysFSDevice.cpp │ │ ├── SysFSDevice.hpp │ │ ├── UEvent.cpp │ │ ├── UEvent.hpp │ │ ├── UEventDeviceManager.cpp │ │ ├── UEventDeviceManager.hpp │ │ ├── UEventParser.cpp │ │ ├── UEventParser.hpp │ │ ├── UMockdevDeviceDefinition.cpp │ │ ├── UMockdevDeviceDefinition.hpp │ │ ├── UMockdevDeviceManager.cpp │ │ ├── UMockdevDeviceManager.hpp │ │ ├── Utility.cpp │ │ ├── Utility.hpp │ │ └── public/ │ │ └── usbguard/ │ │ ├── Audit.cpp │ │ ├── Audit.hpp │ │ ├── ConfigFile.cpp │ │ ├── ConfigFile.hpp │ │ ├── Device.cpp │ │ ├── Device.hpp │ │ ├── DeviceManager.cpp │ │ ├── DeviceManager.hpp │ │ ├── DeviceManagerHooks.cpp │ │ ├── DeviceManagerHooks.hpp │ │ ├── Exception.hpp │ │ ├── IPCClient.cpp │ │ ├── IPCClient.hpp │ │ ├── IPCServer.cpp │ │ ├── IPCServer.hpp │ │ ├── Interface.hpp │ │ ├── KeyValueParser.cpp │ │ ├── KeyValueParser.hpp │ │ ├── Logger.cpp │ │ ├── Logger.hpp │ │ ├── MemoryRuleSet.cpp │ │ ├── MemoryRuleSet.hpp │ │ ├── Policy.cpp │ │ ├── Policy.hpp │ │ ├── Predicates.hpp │ │ ├── Rule.cpp │ │ ├── Rule.hpp │ │ ├── RuleCondition.cpp │ │ ├── RuleCondition.hpp │ │ ├── RuleParser.cpp │ │ ├── RuleParser.hpp │ │ ├── RuleSet.cpp │ │ ├── RuleSet.hpp │ │ ├── Typedefs.cpp │ │ ├── Typedefs.hpp │ │ ├── USB.cpp │ │ ├── USB.hpp │ │ ├── USBGuard.cpp │ │ └── USBGuard.hpp │ ├── Tests/ │ │ ├── .gitignore │ │ ├── Fuzzers/ │ │ │ ├── Makefile.am │ │ │ ├── fuzzer-rules.cpp │ │ │ ├── fuzzer-uevent.cpp │ │ │ └── fuzzer-usb-descriptor.cpp │ │ ├── LDAP/ │ │ │ ├── Sanity/ │ │ │ │ └── ldap-nsswitch.sh │ │ │ ├── UseCase/ │ │ │ │ ├── ldap-test-1.sh │ │ │ │ ├── ldap-test-2.sh │ │ │ │ ├── ldap-test-3.sh │ │ │ │ ├── ldap-test-4.sh │ │ │ │ └── ldap-test-5.sh │ │ │ ├── ansible/ │ │ │ │ ├── hosts │ │ │ │ ├── playbook.yml │ │ │ │ └── roles/ │ │ │ │ └── bennojoy.openldap_server/ │ │ │ │ ├── README.md │ │ │ │ ├── defaults/ │ │ │ │ │ └── main.yml │ │ │ │ ├── files/ │ │ │ │ │ ├── ldap │ │ │ │ │ ├── slapd │ │ │ │ │ └── slapd_fedora │ │ │ │ ├── handlers/ │ │ │ │ │ └── main.yml │ │ │ │ ├── meta/ │ │ │ │ │ └── main.yml │ │ │ │ ├── tasks/ │ │ │ │ │ ├── configure_ldap.yml │ │ │ │ │ ├── install_ldap.yml │ │ │ │ │ └── main.yml │ │ │ │ ├── templates/ │ │ │ │ │ ├── domain.ldif │ │ │ │ │ ├── ldap.conf.j2 │ │ │ │ │ ├── slapd.conf.j2 │ │ │ │ │ ├── slapd.conf_ubuntu.j2 │ │ │ │ │ ├── slapd.fedora.ldif.j2 │ │ │ │ │ └── slapd.ubuntu.ldif.j2 │ │ │ │ └── vars/ │ │ │ │ ├── Debian.yml │ │ │ │ ├── RedHat.yml │ │ │ │ └── main.yml │ │ │ ├── ldap.sh │ │ │ ├── nsswitch.sh │ │ │ ├── setup.ldif │ │ │ ├── usbguard-policy.ldif │ │ │ ├── usbguard.ldif │ │ │ └── usbguard.schema │ │ ├── Makefile.am │ │ ├── Regression/ │ │ │ ├── github-PR209-config-parser.cpp │ │ │ ├── test_Rule_ghi113.cpp │ │ │ ├── test_Rule_ghi247.cpp │ │ │ └── test_Rule_ghi37.cpp │ │ ├── Rules/ │ │ │ ├── test-rules.bad │ │ │ ├── test-rules.file │ │ │ ├── test-rules.good │ │ │ └── test-rules.sh │ │ ├── Source/ │ │ │ ├── CheckScripts/ │ │ │ │ ├── code-style.sh │ │ │ │ ├── copyright.sh │ │ │ │ ├── private-with-build-config.sh │ │ │ │ ├── public-without-build-config.sh │ │ │ │ ├── spell-check.rws │ │ │ │ ├── spell-check.sh │ │ │ │ └── vim-modeline.sh │ │ │ └── check-driver.sh │ │ ├── USB/ │ │ │ ├── data/ │ │ │ │ └── 0001.out │ │ │ └── test-descriptor-parser.sh │ │ ├── Unit/ │ │ │ ├── test_Base64.cpp │ │ │ ├── test_IPCServer_AccessControl.cpp │ │ │ ├── test_Rule.cpp │ │ │ ├── test_RuleAttribute_id.cpp │ │ │ ├── test_RuleParser.cpp │ │ │ ├── test_UEvent.cpp │ │ │ ├── test_UEventParser.cpp │ │ │ ├── test_UMockdevDeviceDefinition.cpp │ │ │ ├── test_UMockdevDeviceDefinition.data.hpp │ │ │ └── test_Utility.cpp │ │ ├── UseCase/ │ │ │ ├── 000_executable.sh │ │ │ ├── 001_cli_policy.sh │ │ │ ├── 002_cli_devices.sh │ │ │ ├── 003_cli_devices_umockdev.sh │ │ │ ├── 004_daemonize.sh │ │ │ ├── 005_cli_devices_advanced.sh │ │ │ └── devices.umockdev │ │ ├── bash-testlib.sh │ │ ├── custom.supp │ │ └── main.cpp │ ├── ThirdParty/ │ │ └── xsl-stylesheets/ │ │ ├── VERSION.xsl │ │ ├── common/ │ │ │ ├── af.xml │ │ │ ├── am.xml │ │ │ ├── ar.xml │ │ │ ├── as.xml │ │ │ ├── ast.xml │ │ │ ├── autoidx-kimber.xsl │ │ │ ├── autoidx-kosek.xsl │ │ │ ├── az.xml │ │ │ ├── bg.xml │ │ │ ├── bn.xml │ │ │ ├── bn_in.xml │ │ │ ├── bs.xml │ │ │ ├── ca.xml │ │ │ ├── charmap.xml │ │ │ ├── charmap.xsl │ │ │ ├── common.xml │ │ │ ├── common.xsl │ │ │ ├── cs.xml │ │ │ ├── cy.xml │ │ │ ├── da.xml │ │ │ ├── de.xml │ │ │ ├── el.xml │ │ │ ├── en.xml │ │ │ ├── entities.ent │ │ │ ├── eo.xml │ │ │ ├── es.xml │ │ │ ├── et.xml │ │ │ ├── eu.xml │ │ │ ├── fa.xml │ │ │ ├── fi.xml │ │ │ ├── fr.xml │ │ │ ├── ga.xml │ │ │ ├── gentext.xsl │ │ │ ├── gl.xml │ │ │ ├── gu.xml │ │ │ ├── he.xml │ │ │ ├── hi.xml │ │ │ ├── hr.xml │ │ │ ├── hu.xml │ │ │ ├── id.xml │ │ │ ├── insertfile.xsl │ │ │ ├── is.xml │ │ │ ├── it.xml │ │ │ ├── ja.xml │ │ │ ├── ka.xml │ │ │ ├── kn.xml │ │ │ ├── ko.xml │ │ │ ├── ky.xml │ │ │ ├── l10n.dtd │ │ │ ├── l10n.xml │ │ │ ├── l10n.xsl │ │ │ ├── la.xml │ │ │ ├── labels.xsl │ │ │ ├── lt.xml │ │ │ ├── lv.xml │ │ │ ├── ml.xml │ │ │ ├── mn.xml │ │ │ ├── mr.xml │ │ │ ├── nb.xml │ │ │ ├── nds.xml │ │ │ ├── nl.xml │ │ │ ├── nn.xml │ │ │ ├── olink.xsl │ │ │ ├── or.xml │ │ │ ├── pa.xml │ │ │ ├── pi.xml │ │ │ ├── pi.xsl │ │ │ ├── pl.xml │ │ │ ├── pt.xml │ │ │ ├── pt_br.xml │ │ │ ├── refentry.xml │ │ │ ├── refentry.xsl │ │ │ ├── ro.xml │ │ │ ├── ru.xml │ │ │ ├── sk.xml │ │ │ ├── sl.xml │ │ │ ├── sq.xml │ │ │ ├── sr.xml │ │ │ ├── sr_Latn.xml │ │ │ ├── stripns.xsl │ │ │ ├── subtitles.xsl │ │ │ ├── sv.xml │ │ │ ├── ta.xml │ │ │ ├── table.xsl │ │ │ ├── targetdatabase.dtd │ │ │ ├── targets.xsl │ │ │ ├── te.xml │ │ │ ├── th.xml │ │ │ ├── titles.xsl │ │ │ ├── tl.xml │ │ │ ├── tr.xml │ │ │ ├── uk.xml │ │ │ ├── utility.xml │ │ │ ├── utility.xsl │ │ │ ├── vi.xml │ │ │ ├── xh.xml │ │ │ ├── zh.xml │ │ │ ├── zh_cn.xml │ │ │ └── zh_tw.xml │ │ ├── lib/ │ │ │ ├── dumpfragment.xsl │ │ │ └── lib.xsl │ │ └── xhtml-1_1/ │ │ ├── admon.xsl │ │ ├── annotations.xsl │ │ ├── autoidx-kimber.xsl │ │ ├── autoidx-kosek.xsl │ │ ├── autoidx-ng.xsl │ │ ├── autoidx.xsl │ │ ├── autotoc.xsl │ │ ├── biblio-iso690.xsl │ │ ├── biblio.xsl │ │ ├── block.xsl │ │ ├── callout.xsl │ │ ├── changebars.xsl │ │ ├── chunk-changebars.xsl │ │ ├── chunk-code.xsl │ │ ├── chunk-common.xsl │ │ ├── chunk.xsl │ │ ├── chunker.xsl │ │ ├── chunkfast.xsl │ │ ├── chunktoc.xsl │ │ ├── component.xsl │ │ ├── division.xsl │ │ ├── docbook.xsl │ │ ├── ebnf.xsl │ │ ├── footnote.xsl │ │ ├── formal.xsl │ │ ├── glossary.xsl │ │ ├── graphics.xsl │ │ ├── highlight.xsl │ │ ├── html-rtf.xsl │ │ ├── html.xsl │ │ ├── htmltbl.xsl │ │ ├── index.xsl │ │ ├── info.xsl │ │ ├── inline.xsl │ │ ├── keywords.xsl │ │ ├── lists.xsl │ │ ├── maketoc.xsl │ │ ├── manifest.xsl │ │ ├── math.xsl │ │ ├── oldchunker.xsl │ │ ├── onechunk.xsl │ │ ├── param.xsl │ │ ├── pi.xsl │ │ ├── profile-chunk-code.xsl │ │ ├── profile-chunk.xsl │ │ ├── profile-docbook.xsl │ │ ├── profile-onechunk.xsl │ │ ├── qandaset.xsl │ │ ├── refentry.xsl │ │ ├── sections.xsl │ │ ├── synop.xsl │ │ ├── table.xsl │ │ ├── task.xsl │ │ ├── titlepage.templates.xsl │ │ ├── titlepage.xsl │ │ ├── toc.xsl │ │ ├── verbatim.xsl │ │ └── xref.xsl │ ├── astylerc │ └── test_filesystem.cpp ├── usbguard-daemon.conf.in ├── usbguard-tmpfiles.conf └── usbguard.service.in
SYMBOL INDEX (830 symbols across 164 files)
FILE: src/CLI/IPCSignalWatcher.cpp
type usbguard (line 34) | namespace usbguard
type ::stat (line 179) | struct ::stat
FILE: src/CLI/IPCSignalWatcher.hpp
type usbguard (line 26) | namespace usbguard
class IPCSignalWatcher (line 28) | class IPCSignalWatcher : public IPCClient
FILE: src/CLI/PolicyGenerator.cpp
type usbguard (line 26) | namespace usbguard
FILE: src/CLI/PolicyGenerator.hpp
type usbguard (line 32) | namespace usbguard
class PolicyGenerator (line 34) | class PolicyGenerator : public DeviceManagerHooks
FILE: src/CLI/usbguard-add-user.cpp
type usbguard (line 33) | namespace usbguard
type ::option (line 37) | struct ::option
function showHelp (line 48) | static void showHelp(std::ostream& stream)
function createIPCAccessControlFile (line 63) | static void createIPCAccessControlFile(const std::string& path, const ...
function usbguard_add_user (line 84) | int usbguard_add_user(int argc, char* argv[])
FILE: src/CLI/usbguard-add-user.hpp
type usbguard (line 24) | namespace usbguard
FILE: src/CLI/usbguard-allow-device.cpp
type usbguard (line 30) | namespace usbguard
function usbguard_allow_device (line 32) | int usbguard_allow_device(int argc, char* argv[])
FILE: src/CLI/usbguard-allow-device.hpp
type usbguard (line 24) | namespace usbguard
FILE: src/CLI/usbguard-append-rule.cpp
type usbguard (line 30) | namespace usbguard
type ::option (line 34) | struct ::option
function showHelp (line 41) | static void showHelp(std::ostream& stream)
function usbguard_append_rule (line 54) | int usbguard_append_rule(int argc, char* argv[])
FILE: src/CLI/usbguard-append-rule.hpp
type usbguard (line 24) | namespace usbguard
FILE: src/CLI/usbguard-apply-device-policy.cpp
type usbguard (line 32) | namespace usbguard
type ::option (line 36) | struct ::option
function showHelp (line 42) | static void showHelp(std::ostream& stream, Rule::Target target)
function isNumeric (line 55) | static bool isNumeric(const std::string& s)
function usbguard_apply_device_policy (line 62) | int usbguard_apply_device_policy(int argc, char** argv, Rule::Target t...
FILE: src/CLI/usbguard-apply-device-policy.hpp
type usbguard (line 26) | namespace usbguard
FILE: src/CLI/usbguard-block-device.cpp
type usbguard (line 30) | namespace usbguard
function usbguard_block_device (line 32) | int usbguard_block_device(int argc, char* argv[])
FILE: src/CLI/usbguard-block-device.hpp
type usbguard (line 24) | namespace usbguard
FILE: src/CLI/usbguard-generate-policy.cpp
type usbguard (line 35) | namespace usbguard
type ::option (line 39) | struct ::option
function showHelp (line 54) | static void showHelp(std::ostream& stream)
function usbguard_generate_policy (line 77) | int usbguard_generate_policy(int argc, char** argv)
FILE: src/CLI/usbguard-generate-policy.hpp
type usbguard (line 24) | namespace usbguard
FILE: src/CLI/usbguard-get-parameter.cpp
type usbguard (line 30) | namespace usbguard
type ::option (line 34) | struct ::option
function showHelp (line 39) | static void showHelp(std::ostream& stream)
function usbguard_get_parameter (line 55) | int usbguard_get_parameter(int argc, char* argv[])
FILE: src/CLI/usbguard-get-parameter.hpp
type usbguard (line 24) | namespace usbguard
FILE: src/CLI/usbguard-list-devices.cpp
type usbguard (line 32) | namespace usbguard
type ::option (line 36) | struct ::option
function showHelp (line 44) | static void showHelp(std::ostream& stream)
function classicFormat (line 61) | static void classicFormat(const std::vector<Rule>& rules)
function printNode (line 75) | static void printNode(
function printTree (line 107) | static void printTree(const std::map<std::string, std::pair<Rule, std:...
function treeFormat (line 141) | static void treeFormat(const std::vector<Rule>& rules)
function usbguard_list_devices (line 173) | int usbguard_list_devices(int argc, char* argv[])
FILE: src/CLI/usbguard-list-devices.hpp
type usbguard (line 24) | namespace usbguard
FILE: src/CLI/usbguard-list-rules.cpp
type usbguard (line 30) | namespace usbguard
type ::option (line 34) | struct ::option
function showHelp (line 41) | static void showHelp(std::ostream& stream)
function usbguard_list_rules (line 52) | int usbguard_list_rules(int argc, char* argv[])
FILE: src/CLI/usbguard-list-rules.hpp
type usbguard (line 24) | namespace usbguard
FILE: src/CLI/usbguard-print-version.cpp
type usbguard (line 33) | namespace usbguard
function toHumanReadable (line 35) | static std::string toHumanReadable(const int enabled)
function usbguard_print_version (line 40) | int usbguard_print_version(__attribute__((unused)) int argc, __attribu...
FILE: src/CLI/usbguard-print-version.hpp
type usbguard (line 24) | namespace usbguard
FILE: src/CLI/usbguard-read-descriptor.cpp
type usbguard (line 34) | namespace usbguard
type ::option (line 38) | struct ::option
function showHelp (line 43) | static void showHelp(std::ostream& stream)
class USBDescriptorPrinter (line 59) | class USBDescriptorPrinter : public USBDescriptorParserHooks
method loadUSBDescriptor (line 62) | void loadUSBDescriptor(USBDescriptorParser* parser, const USBDescrip...
function usbguard_read_descriptor (line 105) | int usbguard_read_descriptor(int argc, char* argv[])
function printDeviceDescriptor (line 165) | void printDeviceDescriptor(const USBDescriptor* descriptor_base)
function printConfigurationDescriptor (line 183) | void printConfigurationDescriptor(const USBDescriptor* descriptor_base)
function printInterfaceDescriptor (line 196) | void printInterfaceDescriptor(const USBDescriptor* descriptor_base)
function printEndpointDescriptor (line 210) | void printEndpointDescriptor(const USBDescriptor* descriptor_base)
function printAudioEndpointDescriptor (line 221) | void printAudioEndpointDescriptor(const USBDescriptor* descriptor_base)
function printUnknownDescriptor (line 234) | void printUnknownDescriptor(const USBDescriptor* descriptor)
FILE: src/CLI/usbguard-read-descriptor.hpp
type usbguard (line 24) | namespace usbguard
FILE: src/CLI/usbguard-reject-device.cpp
type usbguard (line 30) | namespace usbguard
function usbguard_reject_device (line 32) | int usbguard_reject_device(int argc, char* argv[])
FILE: src/CLI/usbguard-reject-device.hpp
type usbguard (line 24) | namespace usbguard
FILE: src/CLI/usbguard-remove-rule.cpp
type usbguard (line 30) | namespace usbguard
type ::option (line 34) | struct ::option
function showHelp (line 39) | static void showHelp(std::ostream& stream)
function usbguard_remove_rule (line 48) | int usbguard_remove_rule(int argc, char* argv[])
FILE: src/CLI/usbguard-remove-rule.hpp
type usbguard (line 24) | namespace usbguard
FILE: src/CLI/usbguard-remove-user.cpp
type usbguard (line 32) | namespace usbguard
type ::option (line 36) | struct ::option
function showHelp (line 43) | static void showHelp(std::ostream& stream)
function removeIPCAccessControlFile (line 54) | static void removeIPCAccessControlFile(const std::string& path, const ...
function usbguard_remove_user (line 66) | int usbguard_remove_user(int argc, char* argv[])
FILE: src/CLI/usbguard-remove-user.hpp
type usbguard (line 24) | namespace usbguard
FILE: src/CLI/usbguard-rule-parser.cpp
type ::option (line 47) | struct ::option
function showHelp (line 54) | static void showHelp(std::ostream& stream, const char* usbguard_arg0)
function main (line 68) | int main(int argc, char** argv)
FILE: src/CLI/usbguard-set-parameter.cpp
type usbguard (line 30) | namespace usbguard
type ::option (line 34) | struct ::option
function showHelp (line 40) | static void showHelp(std::ostream& stream)
function usbguard_set_parameter (line 57) | int usbguard_set_parameter(int argc, char* argv[])
FILE: src/CLI/usbguard-set-parameter.hpp
type usbguard (line 24) | namespace usbguard
FILE: src/CLI/usbguard-watch.cpp
type usbguard (line 30) | namespace usbguard
type ::option (line 34) | struct ::option
function showHelp (line 42) | static void showHelp(std::ostream& stream)
function usbguard_watch (line 55) | int usbguard_watch(int argc, char* argv[])
FILE: src/CLI/usbguard-watch.hpp
type usbguard (line 24) | namespace usbguard
FILE: src/CLI/usbguard.cpp
type usbguard (line 57) | namespace usbguard
function showTopLevelHelp (line 79) | static void showTopLevelHelp(std::ostream& stream = std::cout)
function usbguard_cli (line 108) | static int usbguard_cli(int argc, char* argv[])
function main (line 131) | int main(int argc, char* argv[])
FILE: src/CLI/usbguard.hpp
type usbguard (line 30) | namespace usbguard
FILE: src/Common/ByteOrder.hpp
type usbguard (line 27) | namespace usbguard
function busEndianToHost (line 30) | static inline uint16_t busEndianToHost(uint16_t bus_value)
FILE: src/Common/FDInputStream.hpp
type usbguard (line 34) | namespace usbguard
class FDInputStream (line 37) | class FDInputStream : public std::ifstream
method FDInputStream (line 40) | FDInputStream(int fd)
method FDInputStream (line 46) | FDInputStream(FDInputStream&& stream)
method FDInputStream (line 106) | FDInputStream(int fd) : std::istream(nullptr),
method FDInputStream (line 112) | FDInputStream(FDInputStream&& stream) : std::istream(nullptr),
class FDStreamBuf (line 57) | class FDStreamBuf :
method FDStreamBuf (line 61) | FDStreamBuf(int fd) : fd_(fd) { }
method xsgetn (line 71) | std::streamsize xsgetn(char* s, std::streamsize n)
method underflow (line 87) | int underflow()
class FDInputStream (line 103) | class FDInputStream : public std::istream
method FDInputStream (line 40) | FDInputStream(int fd)
method FDInputStream (line 46) | FDInputStream(FDInputStream&& stream)
method FDInputStream (line 106) | FDInputStream(int fd) : std::istream(nullptr),
method FDInputStream (line 112) | FDInputStream(FDInputStream&& stream) : std::istream(nullptr),
FILE: src/Common/LDAPUtil.cpp
type usbguard (line 28) | namespace usbguard
function toLDIF_appendNonEmptyAttribute (line 61) | static void toLDIF_appendNonEmptyAttribute(std::string& rule_string, c...
FILE: src/Common/LDAPUtil.hpp
type usbguard (line 30) | namespace usbguard
function LDAPUtil (line 32) | class DLL_PUBLIC LDAPUtil
FILE: src/Common/Thread.hpp
type usbguard (line 30) | namespace usbguard
class Thread (line 33) | class Thread
method Thread (line 36) | Thread(C* method_class_ptr, void(C::*method)())
method Thread (line 43) | Thread(Thread& thread)
method Thread (line 51) | Thread& operator=(Thread& thread)
method start (line 64) | void start()
method stop (line 74) | void stop(bool do_wait = true)
method wait (line 83) | void wait()
method running (line 98) | bool running() const
method stopRequested (line 103) | bool stopRequested() const
FILE: src/Common/Utility.cpp
type usbguard (line 42) | namespace usbguard
function runCommandExecChild (line 45) | static void runCommandExecChild(const std::string& path, const std::ve...
function runCommand (line 106) | int runCommand(const char* const path, const char* const arg1, const i...
function runCommand (line 113) | int runCommand(const char* const path, const char* const arg1, const c...
function runCommand (line 121) | int runCommand(const std::string& path, const std::vector<std::string>...
function filenameFromPath (line 185) | std::string filenameFromPath(const std::string& filepath, const bool i...
function parentPath (line 205) | std::string parentPath(const std::string& path)
function trimRight (line 253) | std::string trimRight(const std::string& s, const std::string& delimit...
function trimLeft (line 265) | std::string trimLeft(const std::string& s, const std::string& delimiters)
function trim (line 277) | std::string trim(const std::string& s, const std::string& delimiters)
function numberToString (line 289) | std::string numberToString(const uint8_t number, const std::string& pr...
function stringToNumber (line 297) | uint8_t stringToNumber(const std::string& s, const int base)
function isNumericString (line 303) | bool isNumericString(const std::string& s)
function loadFiles (line 314) | int loadFiles(const std::string& directory,
function removePrefix (line 377) | std::string removePrefix(const std::string& prefix, const std::string&...
function hasSuffix (line 387) | bool hasSuffix(const std::string& value, const std::string& suffix)
function hasPrefix (line 398) | bool hasPrefix(const std::string& value, const std::string& prefix)
function symlinkPath (line 408) | std::string symlinkPath(const std::string& linkpath, struct stat* st_u...
function countPathComponents (line 459) | std::size_t countPathComponents(const std::string& path)
function normalizePath (line 481) | std::string normalizePath(const std::string& path)
function getConfigsFromDir (line 518) | std::vector<std::string> getConfigsFromDir(const std::string& path)
function isValidUID (line 546) | static bool isValidUID(const std::string& uid)
function isValidName (line 561) | static bool isValidName(const std::string& name)
function isValidNameOrUID (line 586) | bool isValidNameOrUID(const std::string& input)
FILE: src/Common/Utility.hpp
type usbguard (line 42) | namespace usbguard
function tokenizeString (line 69) | void tokenizeString(const StringType& str, std::vector<StringType>& to...
function numberToString (line 101) | std::string numberToString(const T number, const std::string& prefix =...
function T (line 132) | T stringToNumber(const std::string& s, const int base = 10)
type dirent (line 189) | struct dirent
type stat (line 211) | struct stat
class Restorer (line 232) | class Restorer
method Restorer (line 235) | Restorer(Tvar& var, Tval transient, Tval restored)
type FreeDeleter (line 252) | struct FreeDeleter {
function make_unique (line 260) | std::unique_ptr<T> make_unique(Params&& ... params)
class ScopedFD (line 268) | class ScopedFD
method ScopedFD (line 271) | ScopedFD(int fd)
method ScopedFD (line 274) | ScopedFD(const ScopedFD&) = delete;
function joinElements (line 305) | std::string joinElements(T begin, T end, const std::string& separator ...
FILE: src/DBus/DBusBridge.cpp
type usbguard (line 27) | namespace usbguard
function GVariantBuilder (line 383) | GVariantBuilder* DBusBridge::deviceRuleToAttributes(const std::string&...
FILE: src/DBus/DBusBridge.hpp
type usbguard (line 39) | namespace usbguard
class DBusBridge (line 41) | class DBusBridge : public IPCClient
FILE: src/DBus/gdbus-server.cpp
function handle_method_call (line 51) | static void
function gboolean (line 79) | static gboolean
function handle_usbguard_ipc_state (line 105) | static void
function on_bus_acquired (line 139) | static void
function on_name_acquired (line 175) | static void
function on_name_lost (line 197) | static void
type ::option (line 214) | struct ::option
function showHelp (line 221) | static void showHelp(std::ostream& stream)
function main (line 234) | int
FILE: src/Daemon/Daemon.cpp
type usbguard (line 51) | namespace usbguard
type stat (line 139) | struct stat
type dirent (line 432) | struct dirent
type timespec (line 616) | struct timespec
FILE: src/Daemon/Daemon.hpp
type usbguard (line 45) | namespace usbguard
class Daemon (line 47) | class Daemon : public IPCServer, public DeviceManagerHooks
type DevicePolicyMethod (line 50) | enum DevicePolicyMethod {
FILE: src/Daemon/FileAuditBackend.cpp
type usbguard (line 27) | namespace usbguard
FILE: src/Daemon/FileAuditBackend.hpp
type usbguard (line 27) | namespace usbguard
class FileAuditBackend (line 29) | class FileAuditBackend : public AuditBackend
FILE: src/Daemon/FileRuleSet.cpp
type usbguard (line 32) | namespace usbguard
function FileRuleSet (line 49) | const FileRuleSet& FileRuleSet::operator=(const FileRuleSet& rhs)
FILE: src/Daemon/FileRuleSet.hpp
type usbguard (line 32) | namespace usbguard
class Interface (line 34) | class Interface
class FileRuleSet (line 35) | class FileRuleSet : public RuleSet
FILE: src/Daemon/LDAPHandler.cpp
type usbguard (line 41) | namespace usbguard
type berval (line 86) | struct berval
type berval (line 148) | struct berval
FILE: src/Daemon/LDAPHandler.hpp
type usbguard (line 34) | namespace usbguard
class LDAPHandler (line 37) | class LDAPHandler
type LDAPDeleter (line 40) | struct LDAPDeleter {
FILE: src/Daemon/LDAPRuleSet.cpp
type usbguard (line 40) | namespace usbguard
function LDAPRuleSet (line 60) | const LDAPRuleSet& LDAPRuleSet::operator=(const LDAPRuleSet& rhs)
FILE: src/Daemon/LDAPRuleSet.hpp
type usbguard (line 37) | namespace usbguard
class Interface (line 39) | class Interface
function LDAPRuleSet (line 40) | class DLL_PUBLIC LDAPRuleSet : public RuleSet
FILE: src/Daemon/LinuxAuditBackend.cpp
function audit_value_needs_encoding (line 56) | static bool audit_value_needs_encoding(const char* str, unsigned int size)
type usbguard (line 134) | namespace usbguard
function encodeMessageNVPair (line 137) | static std::string encodeMessageNVPair(const std::string& key, const s...
function appendToMessage (line 144) | static void appendToMessage(std::string& message, const std::string& k...
function translateTypeValue (line 153) | static std::string translateTypeValue(const std::string& value)
FILE: src/Daemon/LinuxAuditBackend.hpp
type usbguard (line 27) | namespace usbguard
class LinuxAuditBackend (line 29) | class LinuxAuditBackend : public AuditBackend
FILE: src/Daemon/NSHandler.cpp
type usbguard (line 46) | namespace usbguard
function NSHandler (line 117) | NSHandler& NSHandler::getRef()
FILE: src/Daemon/NSHandler.hpp
type usbguard (line 36) | namespace usbguard
class Interface (line 38) | class Interface
function NSHandler (line 39) | class DLL_PUBLIC NSHandler
FILE: src/Daemon/RuleSetFactory.cpp
type usbguard (line 40) | namespace usbguard
FILE: src/Daemon/RuleSetFactory.hpp
type usbguard (line 40) | namespace usbguard
function RuleSetFactory (line 42) | class DLL_PUBLIC RuleSetFactory
FILE: src/Daemon/Seccomp.c
function setupSeccompWhitelist (line 39) | bool setupSeccompWhitelist(void)
function setupSeccompWhitelist (line 159) | bool setupSeccompWhitelist(void)
FILE: src/Daemon/main.cpp
function printUsage (line 49) | static void printUsage(std::ostream& stream, const char* arg0)
function main (line 70) | int main(int argc, char* argv[])
function setupCapabilities (line 222) | static void setupCapabilities(void)
FILE: src/Library/AllowedMatchesCondition.cpp
type usbguard (line 29) | namespace usbguard
function RuleConditionBase (line 62) | RuleConditionBase* AllowedMatchesCondition::clone() const
FILE: src/Library/AllowedMatchesCondition.hpp
type usbguard (line 31) | namespace usbguard
class AllowedMatchesCondition (line 33) | class AllowedMatchesCondition : public RuleConditionBase
FILE: src/Library/Base64.cpp
type usbguard (line 26) | namespace usbguard
function __b64_enc3 (line 118) | static void __b64_enc3(const uint8_t in[3], char out[4])
function __b64_enc2 (line 126) | static void __b64_enc2 (const uint8_t in[2], char out[4])
function __b64_enc1 (line 134) | static void __b64_enc1 (const uint8_t in, char out[4])
function __check_b64_input (line 144) | static void __check_b64_input(const char* in, const size_t count)
function __b64_dec4 (line 178) | static void __b64_dec4 (const char in[4], uint8_t out[3])
function __b64_dec3 (line 186) | static void __b64_dec3 (const char in[3], uint8_t out[2])
function __b64_dec2 (line 193) | static void __b64_dec2 (const char in[2], uint8_t out[1])
function base64Encode (line 201) | std::string base64Encode (const uint8_t* const data, const size_t size)
function base64Decode (line 237) | std::string base64Decode(const char* const data, const size_t size)
function base64EncodedSize (line 288) | size_t base64EncodedSize(const size_t decoded_size)
function base64DecodedSize (line 293) | size_t base64DecodedSize(const size_t encoded_size)
function base64Encode (line 298) | std::string base64Encode(const std::string& value)
function base64Decode (line 303) | std::string base64Decode(const std::string& value)
FILE: src/Library/Base64.hpp
type usbguard (line 29) | namespace usbguard
FILE: src/Library/ConfigFilePrivate.cpp
type usbguard (line 38) | namespace usbguard
FILE: src/Library/ConfigFilePrivate.hpp
type usbguard (line 34) | namespace usbguard
class ConfigFilePrivate (line 36) | class ConfigFilePrivate
type NVPair (line 55) | struct NVPair {
FILE: src/Library/DeviceBase.cpp
type usbguard (line 33) | namespace usbguard
function SysFSDevice (line 155) | SysFSDevice& DeviceBase::sysfsDevice()
FILE: src/Library/DeviceBase.hpp
type usbguard (line 29) | namespace usbguard
class DeviceManagerBase (line 31) | class DeviceManagerBase
class DeviceBase (line 33) | class DeviceBase : public Device, public USBDescriptorParserHooks
FILE: src/Library/DeviceManagerBase.cpp
type usbguard (line 46) | namespace usbguard
type dirent (line 107) | struct dirent
type stat (line 128) | struct stat
type sockaddr_nl (line 171) | struct sockaddr_nl
FILE: src/Library/DeviceManagerBase.hpp
type usbguard (line 32) | namespace usbguard
class DeviceBase (line 34) | class DeviceBase
class DeviceManagerBase (line 36) | class DeviceManagerBase : public DeviceManager
type dirent (line 53) | struct dirent
FILE: src/Library/DeviceManagerPrivate.cpp
type usbguard (line 29) | namespace usbguard
function DeviceManagerPrivate (line 45) | const DeviceManagerPrivate& DeviceManagerPrivate::operator=(const Devi...
FILE: src/Library/DeviceManagerPrivate.hpp
type usbguard (line 33) | namespace usbguard
class DeviceManagerHooks (line 35) | class DeviceManagerHooks
class DeviceManagerPrivate (line 36) | class DeviceManagerPrivate
FILE: src/Library/DevicePrivate.cpp
type usbguard (line 33) | namespace usbguard
function DevicePrivate (line 53) | const DevicePrivate& DevicePrivate::operator=(const DevicePrivate& rhs)
function DeviceManager (line 67) | DeviceManager& DevicePrivate::manager() const
function USBDeviceID (line 245) | const USBDeviceID& DevicePrivate::getDeviceID() const
FILE: src/Library/DevicePrivate.hpp
type usbguard (line 38) | namespace usbguard
class DevicePrivate (line 40) | class DevicePrivate
FILE: src/Library/FixedStateCondition.cpp
type usbguard (line 27) | namespace usbguard
function RuleConditionBase (line 47) | RuleConditionBase* FixedStateCondition::clone() const
FILE: src/Library/FixedStateCondition.hpp
type usbguard (line 29) | namespace usbguard
class FixedStateCondition (line 31) | class FixedStateCondition : public RuleConditionBase
FILE: src/Library/Hash.cpp
type usbguard (line 29) | namespace usbguard
function Hash (line 97) | Hash& Hash::operator=(Hash&& rhs)
FILE: src/Library/Hash.hpp
type usbguard (line 41) | namespace usbguard
class Hash (line 43) | class Hash
FILE: src/Library/IPCClientPrivate.cpp
type usbguard (line 37) | namespace usbguard
type qb_ipc_request_header (line 227) | struct qb_ipc_request_header
type iovec (line 230) | struct iovec
type qb_ipc_response_header (line 319) | struct qb_ipc_response_header
type qb_ipc_response_header (line 332) | struct qb_ipc_response_header
type qb_ipc_response_header (line 333) | struct qb_ipc_response_header
type qb_ipc_response_header (line 346) | struct qb_ipc_response_header
FILE: src/Library/IPCClientPrivate.hpp
type usbguard (line 42) | namespace usbguard
class IPCClientPrivate (line 44) | class IPCClientPrivate
method registerHandler (line 85) | void registerHandler(MessageHandler::HandlerType method)
method qbIPCSendRecvMessage (line 92) | std::unique_ptr<ProtobufType> qbIPCSendRecvMessage(ProtobufType& mes...
FILE: src/Library/IPCPrivate.cpp
type usbguard (line 34) | namespace usbguard
function IPCException (line 85) | IPCException IPC::IPCExceptionFromMessage(const MessagePointer& message)
FILE: src/Library/IPCPrivate.hpp
type usbguard (line 31) | namespace usbguard
type IPC (line 33) | namespace IPC
class MessageHandler (line 50) | class MessageHandler
method MessageHandler (line 55) | MessageHandler(C& c, HandlerType method, const MessageType& factory,
method MessageHandler (line 66) | MessageHandler(const MessageHandler& rhs)
method MessagePointer (line 75) | MessagePointer payloadToMessage(const std::string& payload)
method run (line 82) | void run(MessagePointer& message)
method run (line 88) | void run(MessagePointer& message, MessagePointer& response)
method MessageHandler (line 98) | static MessageHandler create(C& c, HandlerType method,
method section (line 105) | IPCServer::AccessControl::Section section() const
method privilege (line 110) | IPCServer::AccessControl::Privilege privilege() const
FILE: src/Library/IPCServerPrivate.cpp
type usbguard (line 39) | namespace usbguard
type qb_ipcs_service_handlers (line 93) | struct qb_ipcs_service_handlers
type qb_ipcs_poll_handlers (line 108) | struct qb_ipcs_poll_handlers
type qb_loop_priority (line 213) | enum qb_loop_priority
type qb_loop_priority (line 218) | enum qb_loop_priority
type qb_loop_priority (line 224) | enum qb_loop_priority
type qb_ipc_response_header (line 312) | struct qb_ipc_response_header
type iovec (line 313) | struct iovec
type qb_ipc_request_header (line 365) | struct qb_ipc_request_header
type qb_ipc_request_header (line 377) | struct qb_ipc_request_header
type qb_ipc_request_header (line 378) | struct qb_ipc_request_header
type qb_ipc_request_header (line 408) | struct qb_ipc_request_header
type qb_ipc_request_header (line 409) | struct qb_ipc_request_header
type iovec (line 466) | struct iovec
type qb_ipc_response_header (line 557) | struct qb_ipc_response_header
type iovec (line 561) | struct iovec
type passwd (line 703) | struct passwd
type passwd (line 704) | struct passwd
type group (line 722) | struct group
type group (line 723) | struct group
type group (line 742) | struct group
type group (line 743) | struct group
type group (line 766) | struct group
type group (line 767) | struct group
FILE: src/Library/IPCServerPrivate.hpp
type usbguard (line 42) | namespace usbguard
class IPCServerPrivate (line 44) | class IPCServerPrivate
type ClientContext (line 86) | struct ClientContext {
type qb_loop_priority (line 105) | enum qb_loop_priority
type qb_loop_priority (line 106) | enum qb_loop_priority
type qb_loop_priority (line 107) | enum qb_loop_priority
type iovec (line 126) | struct iovec
method registerHandler (line 134) | void registerHandler(MessageHandler::HandlerType method, IPCServer::...
FILE: src/Library/Init.cpp
type usbguard (line 36) | namespace usbguard
class LibraryInit (line 38) | class LibraryInit
method LibraryInit (line 41) | LibraryInit()
FILE: src/Library/KeyValueParserPrivate.cpp
type usbguard (line 35) | namespace usbguard
FILE: src/Library/KeyValueParserPrivate.hpp
type usbguard (line 36) | namespace usbguard
class KeyValueParserPrivate (line 39) | class KeyValueParserPrivate
FILE: src/Library/LocaltimeCondition.cpp
type usbguard (line 33) | namespace usbguard
function RuleConditionBase (line 83) | RuleConditionBase* LocaltimeCondition::clone() const
type tm (line 88) | struct tm
type ::tm (line 116) | struct ::tm
FILE: src/Library/LocaltimeCondition.hpp
type usbguard (line 32) | namespace usbguard
class LocaltimeCondition (line 34) | class LocaltimeCondition : public RuleConditionBase
type ::tm (line 44) | struct ::tm
FILE: src/Library/RandomStateCondition.cpp
type usbguard (line 29) | namespace usbguard
function RuleConditionBase (line 53) | RuleConditionBase* RandomStateCondition::clone() const
FILE: src/Library/RandomStateCondition.hpp
type usbguard (line 31) | namespace usbguard
class RandomStateCondition (line 33) | class RandomStateCondition : public RuleConditionBase
FILE: src/Library/RuleAppliedCondition.cpp
type usbguard (line 34) | namespace usbguard
function RuleConditionBase (line 67) | RuleConditionBase* RuleAppliedCondition::clone() const
type ::tm (line 74) | struct ::tm
FILE: src/Library/RuleAppliedCondition.hpp
type usbguard (line 31) | namespace usbguard
class RuleAppliedCondition (line 33) | class RuleAppliedCondition : public RuleConditionBase
FILE: src/Library/RuleEvaluatedCondition.cpp
type usbguard (line 35) | namespace usbguard
function RuleConditionBase (line 68) | RuleConditionBase* RuleEvaluatedCondition::clone() const
type ::tm (line 75) | struct ::tm
FILE: src/Library/RuleEvaluatedCondition.hpp
type usbguard (line 31) | namespace usbguard
class RuleEvaluatedCondition (line 33) | class RuleEvaluatedCondition : public RuleConditionBase
FILE: src/Library/RuleParser/Actions.hpp
type usbguard (line 29) | namespace usbguard
type RuleParser (line 31) | namespace RuleParser
type comment (line 33) | struct comment
type target (line 34) | struct target
type device_id (line 35) | struct device_id
type device_id_value (line 36) | struct device_id_value
type string_value (line 37) | struct string_value
type multiset_operator (line 38) | struct multiset_operator
type interface_value (line 39) | struct interface_value
type condition (line 40) | struct condition
type str_name (line 41) | struct str_name
type str_hash (line 42) | struct str_hash
type str_parent_hash (line 43) | struct str_parent_hash
type str_serial (line 44) | struct str_serial
type str_id (line 45) | struct str_id
type str_via_port (line 46) | struct str_via_port
type str_with_interface (line 47) | struct str_with_interface
type str_with_connect_type (line 48) | struct str_with_connect_type
type str_if (line 49) | struct str_if
type rule_parser_actions (line 52) | struct rule_parser_actions : tao::pegtl::nothing<Rule> {}
type rule_parser_actions<comment> (line 55) | struct rule_parser_actions<comment> {
method apply0 (line 56) | static void apply0(Rule& rule)
type rule_parser_actions<target> (line 65) | struct rule_parser_actions<target> {
method apply (line 67) | static void apply(const Input& in, Rule& rule)
type rule_parser_actions<device_id> (line 79) | struct rule_parser_actions<device_id> {
method apply (line 81) | static void apply(const Input& in, Rule& rule)
function stringValueFromRule (line 95) | static const std::string stringValueFromRule(const std::string& value)
type name_actions (line 102) | struct name_actions : tao::pegtl::nothing<Rule> {}
type name_actions<str_name> (line 105) | struct name_actions<str_name> {
method apply (line 107) | static void apply(const Input& in, Rule& rule)
type name_actions<string_value> (line 116) | struct name_actions<string_value> {
method apply (line 118) | static void apply(const Input& in, Rule& rule)
type name_actions<multiset_operator> (line 130) | struct name_actions<multiset_operator> {
method apply (line 132) | static void apply(const Input& in, Rule& rule)
type id_actions (line 144) | struct id_actions : tao::pegtl::nothing<Rule> {}
type id_actions<str_id> (line 147) | struct id_actions<str_id> {
method apply (line 149) | static void apply(const Input& in, Rule& rule)
type id_actions<device_id_value> (line 158) | struct id_actions<device_id_value> {
method apply (line 160) | static void apply(const Input& in, Rule& rule)
type id_actions<multiset_operator> (line 175) | struct id_actions<multiset_operator> {
method apply (line 177) | static void apply(const Input& in, Rule& rule)
type hash_actions (line 189) | struct hash_actions : tao::pegtl::nothing<Rule> {}
type hash_actions<str_hash> (line 192) | struct hash_actions<str_hash> {
method apply (line 194) | static void apply(const Input& in, Rule& rule)
type hash_actions<string_value> (line 203) | struct hash_actions<string_value> {
method apply (line 205) | static void apply(const Input& in, Rule& rule)
type hash_actions<multiset_operator> (line 217) | struct hash_actions<multiset_operator> {
method apply (line 219) | static void apply(const Input& in, Rule& rule)
type parent_hash_actions (line 231) | struct parent_hash_actions : tao::pegtl::nothing<Rule> {}
type parent_hash_actions<str_parent_hash> (line 234) | struct parent_hash_actions<str_parent_hash> {
method apply (line 236) | static void apply(const Input& in, Rule& rule)
type parent_hash_actions<string_value> (line 245) | struct parent_hash_actions<string_value> {
method apply (line 247) | static void apply(const Input& in, Rule& rule)
type parent_hash_actions<multiset_operator> (line 259) | struct parent_hash_actions<multiset_operator> {
method apply (line 261) | static void apply(const Input& in, Rule& rule)
type serial_actions (line 273) | struct serial_actions : tao::pegtl::nothing<Rule> {}
type serial_actions<str_serial> (line 276) | struct serial_actions<str_serial> {
method apply (line 278) | static void apply(const Input& in, Rule& rule)
type serial_actions<string_value> (line 287) | struct serial_actions<string_value> {
method apply (line 289) | static void apply(const Input& in, Rule& rule)
type serial_actions<multiset_operator> (line 301) | struct serial_actions<multiset_operator> {
method apply (line 303) | static void apply(const Input& in, Rule& rule)
type label_actions (line 315) | struct label_actions : tao::pegtl::nothing<Rule> {}
type label_actions<str_serial> (line 318) | struct label_actions<str_serial> {
method apply (line 320) | static void apply(const Input& in, Rule& rule)
type label_actions<string_value> (line 329) | struct label_actions<string_value> {
method apply (line 331) | static void apply(const Input& in, Rule& rule)
type label_actions<multiset_operator> (line 343) | struct label_actions<multiset_operator> {
method apply (line 345) | static void apply(const Input& in, Rule& rule)
type with_connect_type_actions (line 357) | struct with_connect_type_actions : tao::pegtl::nothing<Rule> {}
type with_connect_type_actions<str_with_connect_type> (line 360) | struct with_connect_type_actions<str_with_connect_type> {
method apply (line 362) | static void apply(const Input& in, Rule& rule)
type with_connect_type_actions<string_value> (line 372) | struct with_connect_type_actions<string_value> {
method apply (line 374) | static void apply(const Input& in, Rule& rule)
type with_connect_type_actions<multiset_operator> (line 386) | struct with_connect_type_actions<multiset_operator> {
method apply (line 388) | static void apply(const Input& in, Rule& rule)
type via_port_actions (line 401) | struct via_port_actions : tao::pegtl::nothing<Rule> {}
type via_port_actions<str_via_port> (line 404) | struct via_port_actions<str_via_port> {
method apply (line 406) | static void apply(const Input& in, Rule& rule)
type via_port_actions<string_value> (line 415) | struct via_port_actions<string_value> {
method apply (line 417) | static void apply(const Input& in, Rule& rule)
type via_port_actions<multiset_operator> (line 429) | struct via_port_actions<multiset_operator> {
method apply (line 431) | static void apply(const Input& in, Rule& rule)
type with_interface_actions (line 443) | struct with_interface_actions : tao::pegtl::nothing<Rule> {}
type with_interface_actions<str_with_interface> (line 446) | struct with_interface_actions<str_with_interface> {
method apply (line 448) | static void apply(const Input& in, Rule& rule)
type with_interface_actions<interface_value> (line 457) | struct with_interface_actions<interface_value> {
method apply (line 459) | static void apply(const Input& in, Rule& rule)
type with_interface_actions<multiset_operator> (line 472) | struct with_interface_actions<multiset_operator> {
method apply (line 474) | static void apply(const Input& in, Rule& rule)
type condition_actions (line 486) | struct condition_actions : tao::pegtl::nothing<Rule> {}
type condition_actions<str_if> (line 489) | struct condition_actions<str_if> {
method apply (line 491) | static void apply(const Input& in, Rule& rule)
type condition_actions<condition> (line 500) | struct condition_actions<condition> {
method apply (line 502) | static void apply(const Input& in, Rule& rule)
type condition_actions<multiset_operator> (line 514) | struct condition_actions<multiset_operator> {
method apply (line 516) | static void apply(const Input& in, Rule& rule)
FILE: src/Library/RuleParser/Grammar.hpp
type usbguard (line 29) | namespace usbguard
type RuleParser (line 31) | namespace RuleParser
type str_allow (line 37) | struct str_allow : TAO_PEGTL_STRING("allow") {}
type str_block (line 39) | struct str_block : TAO_PEGTL_STRING("block") {}
type str_reject (line 41) | struct str_reject : TAO_PEGTL_STRING("reject") {}
type str_match (line 43) | struct str_match : TAO_PEGTL_STRING("match") {}
type str_device (line 45) | struct str_device : TAO_PEGTL_STRING("device") {}
type str_name (line 47) | struct str_name : TAO_PEGTL_STRING("name") {}
type str_hash (line 49) | struct str_hash : TAO_PEGTL_STRING("hash") {}
type str_serial (line 59) | struct str_serial : TAO_PEGTL_STRING("serial") {}
type str_if (line 61) | struct str_if : TAO_PEGTL_STRING("if") {}
type str_id (line 63) | struct str_id : TAO_PEGTL_STRING("id") {}
type str_label (line 65) | struct str_label : TAO_PEGTL_STRING("label") {}
type str_equals (line 73) | struct str_equals : TAO_PEGTL_STRING("equals") {}
type multiset_operator (line 82) | struct multiset_operator
type attribute_value_multiset (line 86) | struct attribute_value_multiset
type rule_attribute (line 93) | struct rule_attribute
type escaped_single (line 101) | struct escaped_single
type escaped_decbyte (line 104) | struct escaped_decbyte
type escaped_hexbyte (line 107) | struct escaped_hexbyte
type character_escaped (line 111) | struct character_escaped
type character_regular (line 114) | struct character_regular
type character (line 118) | struct character
type bounded_string (line 122) | struct bounded_string
type string_value (line 125) | struct string_value
type condition_argument (line 131) | struct condition_argument
type condition_identifier (line 134) | struct condition_identifier
type negation (line 137) | struct negation
type condition (line 140) | struct condition
type hex4 (line 146) | struct hex4
type device_vid (line 149) | struct device_vid : sor<hex4, one<'*'>> {}
type device_pid (line 150) | struct device_pid : sor<hex4, one<'*'>> {}
type device_id_value (line 152) | struct device_id_value
type device_id (line 155) | struct device_id
type hex2 (line 161) | struct hex2
type hex2orAsterisk (line 164) | struct hex2orAsterisk
type interface_value (line 167) | struct interface_value
type id_attribute (line 173) | struct id_attribute
type name_attribute (line 176) | struct name_attribute
type hash_attribute (line 179) | struct hash_attribute
type parent_hash_attribute (line 182) | struct parent_hash_attribute
type serial_attribute (line 185) | struct serial_attribute
type with_connect_type_attribute (line 188) | struct with_connect_type_attribute
type via_port_attribute (line 191) | struct via_port_attribute
type with_interface_attribute (line 194) | struct with_interface_attribute
type condition_attribute (line 197) | struct condition_attribute
type label_attribute (line 200) | struct label_attribute
type rule_attributes (line 203) | struct rule_attributes
type target (line 218) | struct target
type comment (line 224) | struct comment
type rule (line 231) | struct rule
type rule_grammar (line 241) | struct rule_grammar
FILE: src/Library/RulePrivate.cpp
type usbguard (line 30) | namespace usbguard
function USBDeviceID (line 241) | const USBDeviceID& RulePrivate::getDeviceID() const
function toString_appendNonEmptyAttribute (line 417) | static void toString_appendNonEmptyAttribute(std::string& rule_string,...
function Rule (line 475) | Rule RulePrivate::fromString(const std::string& rule_string)
FILE: src/Library/RulePrivate.hpp
type usbguard (line 30) | namespace usbguard
class Interface (line 32) | class Interface
class RulePrivate (line 33) | class RulePrivate
type MetaData (line 36) | struct MetaData {
method MetaData (line 37) | MetaData()
method MetaData (line 42) | MetaData(const MetaData& rhs) = default;
method MetaData (line 43) | MetaData& operator=(const MetaData& rhs) = default;
method RulePrivate (line 54) | RulePrivate& operator=(const RulePrivate& rhs) = default;
FILE: src/Library/SysFSDevice.cpp
type usbguard (line 37) | namespace usbguard
function SysFSDevice (line 103) | SysFSDevice& SysFSDevice::operator=(SysFSDevice&& rhs_device)
function UEvent (line 124) | const UEvent& SysFSDevice::getUEvent() const
type ::stat (line 136) | struct ::stat
FILE: src/Library/SysFSDevice.hpp
type usbguard (line 30) | namespace usbguard
class SysFSDevice (line 32) | class SysFSDevice
FILE: src/Library/UEvent.cpp
type usbguard (line 28) | namespace usbguard
function UEvent (line 39) | UEvent& UEvent::operator=(UEvent&& rhs)
function UEvent (line 45) | UEvent UEvent::fromString(const std::string& uevent_string, bool attri...
FILE: src/Library/UEvent.hpp
type usbguard (line 29) | namespace usbguard
class UEvent (line 31) | class UEvent
FILE: src/Library/UEventDeviceManager.cpp
type usbguard (line 48) | namespace usbguard
type timeval (line 180) | struct timeval
type iovec (line 220) | struct iovec
type sockaddr_nl (line 223) | struct sockaddr_nl
type cmsghdr (line 225) | struct cmsghdr
type ucred (line 226) | struct ucred
type ucred (line 228) | struct ucred
type msghdr (line 231) | struct msghdr
type cmsghdr (line 264) | struct cmsghdr
type ucred (line 273) | struct ucred
type ucred (line 282) | struct ucred
type ucred (line 283) | struct ucred
FILE: src/Library/UEventDeviceManager.hpp
type usbguard (line 28) | namespace usbguard
class UEvent (line 30) | class UEvent
class UEventDeviceManager (line 32) | class UEventDeviceManager : public DeviceManagerBase
FILE: src/Library/UEventParser.cpp
type usbguard (line 38) | namespace usbguard
type UEventParser (line 40) | namespace UEventParser
type actions (line 43) | struct actions
type actions<attribute> (line 47) | struct actions<attribute> {
method apply (line 49) | static void apply(const Input& in, UEvent& uevent)
type actions<action> (line 90) | struct actions<action> {
method apply (line 92) | static void apply(const Input& in, UEvent& uevent)
type actions<devpath> (line 99) | struct actions<devpath> {
method apply (line 101) | static void apply(const Input& in, UEvent& uevent)
function parseUEventFromFile (line 108) | void parseUEventFromFile(const std::string& uevent_path, UEvent& ueven...
function parseUEventFromString (line 128) | void parseUEventFromString(const std::string& uevent_string, UEvent& u...
function parseUEventFromString (line 149) | void parseUEventFromString(const std::string& uevent_string, UEvent& u...
FILE: src/Library/UEventParser.hpp
type usbguard (line 28) | namespace usbguard
class UEvent (line 30) | class UEvent
type UEventParser (line 32) | namespace UEventParser
type value (line 36) | struct value
type key (line 39) | struct key
type attribute (line 42) | struct attribute
type attributes (line 45) | struct attributes
type action (line 48) | struct action
type devpath (line 51) | struct devpath
type header (line 54) | struct header
type uevent (line 57) | struct uevent
type grammar (line 60) | struct grammar
FILE: src/Library/UMockdevDeviceDefinition.cpp
type usbguard (line 35) | namespace usbguard
type UMockdevParser (line 37) | namespace UMockdevParser
type line_rest (line 68) | struct line_rest
type devfs_node_value (line 71) | struct devfs_node_value
type devfs_node_line (line 74) | struct devfs_node_line
type ascii_attr_value (line 77) | struct ascii_attr_value
type ascii_attr_line (line 80) | struct ascii_attr_line
type property_value (line 83) | struct property_value
type property_line (line 86) | struct property_line
type unprocessed_line (line 89) | struct unprocessed_line
type definition_rest (line 92) | struct definition_rest
type sysfs_path_value (line 95) | struct sysfs_path_value
type sysfs_path_line_begin (line 98) | struct sysfs_path_line_begin
type sysfs_path_line (line 101) | struct sysfs_path_line
type empty_line (line 104) | struct empty_line
type definition (line 107) | struct definition
type grammar (line 110) | struct grammar
type actions (line 114) | struct actions
type actions<sysfs_path_line_begin> (line 120) | struct actions<sysfs_path_line_begin> {
method apply (line 122) | static void apply(const Input& in, Definitions& definitions, const...
type actions<sysfs_path_value> (line 132) | struct actions<sysfs_path_value> {
method apply (line 134) | static void apply(const Input& in, Definitions& definitions, const...
type actions<devfs_node_value> (line 143) | struct actions<devfs_node_value> {
method apply (line 145) | static void apply(const Input& in, Definitions& definitions, const...
type actions<ascii_attr_value> (line 155) | struct actions<ascii_attr_value> {
method apply (line 157) | static void apply(const Input& in, Definitions& definitions, const...
type actions<property_value> (line 170) | struct actions<property_value> {
method apply (line 172) | static void apply(const Input& in, Definitions& definitions, const...
type actions<definition> (line 191) | struct actions<definition> {
method apply (line 193) | static void apply(const Input& in, Definitions& definitions, const...
FILE: src/Library/UMockdevDeviceDefinition.hpp
type usbguard (line 29) | namespace usbguard
class UMockdevDeviceDefinition (line 31) | class UMockdevDeviceDefinition
method UMockdevDeviceDefinition (line 35) | UMockdevDeviceDefinition(UMockdevDeviceDefinition&&) = default;
FILE: src/Library/UMockdevDeviceManager.cpp
type usbguard (line 51) | namespace usbguard
type dirent (line 176) | struct dirent
type stat (line 178) | struct stat
type inotify_event (line 251) | struct inotify_event
type timeval (line 451) | struct timeval
type iovec (line 498) | struct iovec
type sockaddr_nl (line 501) | struct sockaddr_nl
type cmsghdr (line 503) | struct cmsghdr
type ucred (line 504) | struct ucred
type ucred (line 506) | struct ucred
type msghdr (line 509) | struct msghdr
type cmsghdr (line 535) | struct cmsghdr
type ucred (line 544) | struct ucred
type ucred (line 553) | struct ucred
type ucred (line 554) | struct ucred
type libudev_netlink_header (line 581) | struct libudev_netlink_header {
type libudev_netlink_header (line 607) | struct libudev_netlink_header
FILE: src/Library/UMockdevDeviceManager.hpp
type usbguard (line 32) | namespace usbguard
class UEvent (line 34) | class UEvent
class UMockdevDeviceManager (line 36) | class UMockdevDeviceManager : public DeviceManagerBase
type GObjectDeleter (line 48) | struct GObjectDeleter {
FILE: src/Library/Utility.cpp
type usbguard (line 30) | namespace usbguard
type Utility (line 32) | namespace Utility
function escapeString (line 34) | std::string escapeString(const std::string& string_raw)
function unescapeString (line 74) | std::string unescapeString(const std::string& string_escaped)
function quoteEscapeString (line 139) | std::string quoteEscapeString(const std::string& value)
FILE: src/Library/Utility.hpp
type usbguard (line 29) | namespace usbguard
type Utility (line 31) | namespace Utility
FILE: src/Library/public/usbguard/Audit.cpp
type usbguard (line 29) | namespace usbguard
function uid_t (line 44) | uid_t AuditIdentity::uid() const
function pid_t (line 49) | pid_t AuditIdentity::pid() const
function AuditIdentity (line 124) | const AuditIdentity& AuditEvent::identity() const
function AuditEvent (line 173) | AuditEvent Audit::policyEvent(std::shared_ptr<Rule> rule, Policy::Even...
function AuditEvent (line 178) | AuditEvent Audit::policyEvent(std::shared_ptr<Rule> new_rule, std::sha...
function AuditEvent (line 183) | AuditEvent Audit::policyEvent(std::shared_ptr<Device> device, Policy::...
function AuditEvent (line 188) | AuditEvent Audit::policyEvent(std::shared_ptr<Device> device, Rule::Ta...
function AuditEvent (line 193) | AuditEvent Audit::deviceEvent(std::shared_ptr<Device> device, DeviceMa...
function AuditEvent (line 198) | AuditEvent Audit::deviceEvent(std::shared_ptr<Device> new_device, std:...
function AuditEvent (line 203) | AuditEvent Audit::policyEvent(const AuditIdentity& identity, std::shar...
function AuditEvent (line 212) | AuditEvent Audit::policyEvent(const AuditIdentity& identity, std::shar...
function AuditEvent (line 222) | AuditEvent Audit::policyEvent(const AuditIdentity& identity, std::shar...
function AuditEvent (line 232) | AuditEvent Audit::policyEvent(const AuditIdentity& identity, std::shar...
function AuditEvent (line 244) | AuditEvent Audit::deviceEvent(const AuditIdentity& identity, std::shar...
function AuditEvent (line 254) | AuditEvent Audit::deviceEvent(const AuditIdentity& identity, std::shar...
FILE: src/Library/public/usbguard/Audit.hpp
type usbguard (line 37) | namespace usbguard
function AuditIdentity (line 42) | class DLL_PUBLIC AuditIdentity
class AuditBackend (line 87) | class AuditBackend
function AuditEvent (line 93) | class DLL_PUBLIC AuditEvent
function AuditBackend (line 195) | class DLL_PUBLIC AuditBackend
function Audit (line 233) | class DLL_PUBLIC Audit
FILE: src/Library/public/usbguard/ConfigFile.cpp
type usbguard (line 26) | namespace usbguard
FILE: src/Library/public/usbguard/ConfigFile.hpp
type usbguard (line 28) | namespace usbguard
class ConfigFilePrivate (line 30) | class ConfigFilePrivate
function ConfigFile (line 36) | class DLL_PUBLIC ConfigFile
FILE: src/Library/public/usbguard/Device.cpp
type usbguard (line 26) | namespace usbguard
function Device (line 40) | const Device& Device::operator=(const Device& rhs)
function DeviceManager (line 46) | DeviceManager& Device::manager() const
function USBDeviceID (line 141) | const USBDeviceID& Device::getDeviceID() const
FILE: src/Library/public/usbguard/Device.hpp
type usbguard (line 33) | namespace usbguard
class DeviceManager (line 35) | class DeviceManager
class DevicePrivate (line 36) | class DevicePrivate
function Device (line 41) | class DLL_PUBLIC Device
FILE: src/Library/public/usbguard/DeviceManager.cpp
type usbguard (line 29) | namespace usbguard
function DeviceManager (line 128) | const DeviceManager& DeviceManager::operator=(const DeviceManager& rhs)
FILE: src/Library/public/usbguard/DeviceManager.hpp
type usbguard (line 33) | namespace usbguard
class DeviceManagerHooks (line 35) | class DeviceManagerHooks
class DeviceManagerPrivate (line 36) | class DeviceManagerPrivate
function DeviceManager (line 44) | class DLL_PUBLIC DeviceManager
FILE: src/Library/public/usbguard/DeviceManagerHooks.cpp
type usbguard (line 25) | namespace usbguard
FILE: src/Library/public/usbguard/DeviceManagerHooks.hpp
type usbguard (line 30) | namespace usbguard
function DeviceManagerHooks (line 35) | class DLL_PUBLIC DeviceManagerHooks
FILE: src/Library/public/usbguard/Exception.hpp
type usbguard (line 34) | namespace usbguard
class DLL_PUBLIC (line 39) | class DLL_PUBLIC
function Exception (line 51) | Exception(const Exception& rhs) = default;
function Exception (line 54) | Exception(Exception&& rhs) = default;
function setContext (line 72) | void setContext(const std::string& context)
function setObject (line 77) | void setObject(const std::string& object)
function setReason (line 82) | void setReason(const std::string& reason_val)
function message (line 94) | virtual std::string message() const noexcept
class ErrnoException (line 118) | class ErrnoException : public Exception
method ErrnoException (line 121) | ErrnoException(const std::string& context, const std::string& object...
method reasonFromErrno (line 126) | static std::string reasonFromErrno(const int errno_value)
class IPCException (line 149) | class IPCException : public Exception
method IPCException (line 152) | IPCException()
method IPCException (line 157) | IPCException(const Exception& exception,
method IPCException (line 164) | IPCException(const std::string& context,
method IPCException (line 173) | IPCException(const IPCException& rhs)
method hasMessageID (line 179) | bool hasMessageID() const noexcept
method messageID (line 184) | uint64_t messageID() const noexcept
method setMessageID (line 189) | void setMessageID(uint64_t message_id)
FILE: src/Library/public/usbguard/IPCClient.cpp
type usbguard (line 26) | namespace usbguard
FILE: src/Library/public/usbguard/IPCClient.hpp
type usbguard (line 36) | namespace usbguard
class IPCClientPrivate (line 38) | class IPCClientPrivate
function IPCClient (line 44) | class DLL_PUBLIC IPCClient : public Interface
FILE: src/Library/public/usbguard/IPCServer.cpp
type usbguard (line 31) | namespace usbguard
FILE: src/Library/public/usbguard/IPCServer.hpp
type usbguard (line 38) | namespace usbguard
class IPCServerPrivate (line 40) | class IPCServerPrivate
function IPCServer (line 46) | class DLL_PUBLIC IPCServer : public Interface
FILE: src/Library/public/usbguard/Interface.hpp
type usbguard (line 33) | namespace usbguard
function Interface (line 40) | class DLL_PUBLIC Interface
FILE: src/Library/public/usbguard/KeyValueParser.cpp
type usbguard (line 36) | namespace usbguard
FILE: src/Library/public/usbguard/KeyValueParser.hpp
type usbguard (line 33) | namespace usbguard
class KeyValueParserPrivate (line 35) | class KeyValueParserPrivate
function KeyValueParser (line 40) | class DLL_PUBLIC KeyValueParser
FILE: src/Library/public/usbguard/Logger.cpp
type usbguard (line 42) | namespace usbguard
class OStreamSink (line 116) | class OStreamSink : public LogSink
method OStreamSink (line 119) | OStreamSink(const std::string& name, std::ostream& stream)
method write (line 125) | void write(const LogStream::Source& source, LogStream::Level level, ...
class ConsoleSink (line 147) | class ConsoleSink : public OStreamSink
method ConsoleSink (line 150) | ConsoleSink()
class SyslogSink (line 156) | class SyslogSink : public LogSink
method SyslogSink (line 159) | SyslogSink(const std::string& ident)
method levelToPriority (line 171) | int levelToPriority(const LogStream::Level level)
method write (line 195) | void write(const LogStream::Source& source, LogStream::Level level, ...
class FileSink (line 212) | class FileSink : public OStreamSink
method FileSink (line 215) | FileSink(const std::string& filepath, bool append = true)
class AuditFileSink (line 239) | class AuditFileSink : public OStreamSink
method AuditFileSink (line 242) | AuditFileSink(const std::string& filepath)
method write (line 260) | void write(const LogStream::Source& source, LogStream::Level level, ...
function LogStream (line 393) | LogStream Logger::operator()(const std::string& file, const int line, ...
type timeval (line 423) | struct timeval
FILE: src/Library/public/usbguard/Logger.hpp
type usbguard (line 30) | namespace usbguard
class Logger (line 32) | class Logger
class DLL_PUBLIC (line 37) | class DLL_PUBLIC
type Source (line 44) | struct Source {
type Level (line 65) | enum class Level : int {
function LogSink (line 117) | class DLL_PUBLIC LogSink
function Logger (line 156) | class DLL_PUBLIC Logger
FILE: src/Library/public/usbguard/MemoryRuleSet.cpp
type usbguard (line 27) | namespace usbguard
function MemoryRuleSet (line 42) | const MemoryRuleSet& MemoryRuleSet::operator=(const MemoryRuleSet& rhs)
FILE: src/Library/public/usbguard/MemoryRuleSet.hpp
type usbguard (line 28) | namespace usbguard
class Interface (line 30) | class Interface
function MemoryRuleSet (line 31) | class DLL_PUBLIC MemoryRuleSet : public RuleSet
FILE: src/Library/public/usbguard/Policy.cpp
type usbguard (line 27) | namespace usbguard
FILE: src/Library/public/usbguard/Policy.hpp
type usbguard (line 28) | namespace usbguard
function Policy (line 30) | class DLL_PUBLIC Policy
FILE: src/Library/public/usbguard/Predicates.hpp
type usbguard (line 25) | namespace usbguard
type Predicates (line 27) | namespace Predicates DLL_PUBLIC
function isSubsetOf (line 39) | bool isSubsetOf(const T& source, const T& target)
function isSupersetOf (line 57) | bool isSupersetOf(const T& source, const T& target)
FILE: src/Library/public/usbguard/Rule.cpp
type usbguard (line 28) | namespace usbguard
function toRuleString (line 31) | std::string toRuleString(const std::string& value)
function Rule (line 53) | const Rule& Rule::operator=(const Rule& rhs)
function USBDeviceID (line 84) | const USBDeviceID& Rule::getDeviceID() const
function Rule (line 297) | Rule Rule::fromString(const std::string& rule_string)
FILE: src/Library/public/usbguard/Rule.hpp
type usbguard (line 36) | namespace usbguard
function toRuleString (line 46) | std::string toRuleString(T* const value)
function toRuleString (line 58) | std::string toRuleString(const T& value)
class RulePrivate (line 72) | class RulePrivate
function Rule (line 78) | class DLL_PUBLIC Rule
FILE: src/Library/public/usbguard/RuleCondition.cpp
type usbguard (line 31) | namespace usbguard
function RuleConditionBase (line 129) | RuleConditionBase* RuleConditionBase::getImplementation(const std::str...
function RuleConditionBase (line 172) | RuleConditionBase* RuleConditionBase::getImplementation(const std::str...
function RuleCondition (line 225) | RuleCondition& RuleCondition::operator=(const RuleCondition& rhs)
function RuleCondition (line 231) | RuleCondition& RuleCondition::operator=(RuleCondition&& rhs)
function RuleConditionBase (line 237) | RuleConditionBase* RuleCondition::operator->()
function RuleConditionBase (line 242) | RuleConditionBase& RuleCondition::operator*()
type usbguard (line 127) | namespace usbguard
function RuleConditionBase (line 129) | RuleConditionBase* RuleConditionBase::getImplementation(const std::str...
function RuleConditionBase (line 172) | RuleConditionBase* RuleConditionBase::getImplementation(const std::str...
function RuleCondition (line 225) | RuleCondition& RuleCondition::operator=(const RuleCondition& rhs)
function RuleCondition (line 231) | RuleCondition& RuleCondition::operator=(RuleCondition&& rhs)
function RuleConditionBase (line 237) | RuleConditionBase* RuleCondition::operator->()
function RuleConditionBase (line 242) | RuleConditionBase& RuleCondition::operator*()
FILE: src/Library/public/usbguard/RuleCondition.hpp
type usbguard (line 26) | namespace usbguard
class Interface (line 28) | class Interface
class Rule (line 29) | class Rule
function RuleConditionBase (line 34) | class DLL_PUBLIC RuleConditionBase
function RuleCondition (line 192) | class DLL_PUBLIC RuleCondition
FILE: src/Library/public/usbguard/RuleParser.cpp
type usbguard (line 43) | namespace usbguard
function Rule (line 45) | Rule parseRuleFromString(const std::string& rule_spec, const std::stri...
FILE: src/Library/public/usbguard/RuleParser.hpp
type usbguard (line 29) | namespace usbguard
class RuleParserError (line 34) | class RuleParserError : public std::exception
method RuleParserError (line 47) | RuleParserError(const std::string& rule_spec, const std::string& hin...
method setHint (line 62) | void setHint(const std::string& hint)
method setOffset (line 72) | void setOffset(size_t offset)
method setFileInfo (line 84) | void setFileInfo(const std::string& file, size_t error_line, size_t ...
method hasFileInfo (line 127) | bool hasFileInfo() const
method fileInfo (line 138) | const std::string fileInfo() const
method line (line 158) | size_t line() const
method offset (line 168) | size_t offset() const
FILE: src/Library/public/usbguard/RuleSet.cpp
type usbguard (line 33) | namespace usbguard
function RuleSet (line 51) | const RuleSet& RuleSet::operator=(const RuleSet& rhs)
FILE: src/Library/public/usbguard/RuleSet.hpp
type usbguard (line 28) | namespace usbguard
class Interface (line 30) | class Interface
function RuleSet (line 31) | class DLL_PUBLIC RuleSet
FILE: src/Library/public/usbguard/Typedefs.cpp
type usbguard (line 25) | namespace usbguard
function matches (line 28) | bool matches(const std::string& a, const std::string& b)
FILE: src/Library/public/usbguard/Typedefs.hpp
type usbguard (line 24) | namespace usbguard
function matches (line 34) | bool matches(const T& a, const T& b)
FILE: src/Library/public/usbguard/USB.cpp
type usbguard (line 32) | namespace usbguard
function USBParseDeviceDescriptor (line 281) | void USBParseDeviceDescriptor(USBDescriptorParser* parser, const USBDe...
function USBParseConfigurationDescriptor (line 295) | void USBParseConfigurationDescriptor(USBDescriptorParser* parser, cons...
function USBParseInterfaceDescriptor (line 307) | void USBParseInterfaceDescriptor(USBDescriptorParser* parser, const US...
function USBParseEndpointDescriptor (line 317) | void USBParseEndpointDescriptor(USBDescriptorParser* parser, const USB...
function USBParseAudioEndpointDescriptor (line 326) | void USBParseAudioEndpointDescriptor(USBDescriptorParser* parser, cons...
function USBParseUnknownDescriptor (line 336) | void USBParseUnknownDescriptor(USBDescriptorParser* parser, const USBD...
FILE: src/Library/public/usbguard/USB.hpp
type usbguard (line 35) | namespace usbguard
type USBDescriptorType (line 77) | enum class USBDescriptorType : uint8_t {
function USBDescriptorHeader (line 87) | struct DLL_PUBLIC USBDescriptorHeader {
function USBDescriptor (line 90) | __attribute__((packed));
function USBDeviceDescriptor (line 95) | __attribute__((packed));
function USBConfigurationDescriptor (line 111) | __attribute__((packed));
function USBInterfaceDescriptor (line 121) | __attribute__((packed));
type USBEndpointDescriptor (line 134) | struct USBEndpointDescriptor {
type USBDescriptorHeader (line 135) | struct USBDescriptorHeader
type USBAudioEndpointDescriptor (line 142) | struct USBAudioEndpointDescriptor {
type USBDescriptorHeader (line 143) | struct USBDescriptorHeader
function USBDeviceID (line 159) | class DLL_PUBLIC USBDeviceID
type Predicates (line 276) | namespace Predicates DLL_PUBLIC
function USBInterfaceType (line 312) | class DLL_PUBLIC USBInterfaceType
type Predicates (line 418) | namespace Predicates DLL_PUBLIC
class USBDescriptorParser (line 435) | class USBDescriptorParser
function USBDescriptorParserHooks (line 437) | class DLL_PUBLIC USBDescriptorParserHooks
function USBDescriptorParser (line 447) | class DLL_PUBLIC USBDescriptorParser
FILE: src/Library/public/usbguard/USBGuard.cpp
type usbguard (line 36) | namespace usbguard
function getDaemonConfigPath (line 38) | std::string getDaemonConfigPath()
function getIPCAccessControlFilesPath (line 53) | std::string getIPCAccessControlFilesPath()
function getIPCAccessControlFileBasename (line 67) | std::string getIPCAccessControlFileBasename(const std::string& name, b...
FILE: src/Library/public/usbguard/USBGuard.hpp
type usbguard (line 25) | namespace usbguard
FILE: src/Tests/Fuzzers/fuzzer-rules.cpp
function LLVMFuzzerTestOneInput (line 37) | int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
FILE: src/Tests/Fuzzers/fuzzer-uevent.cpp
function LLVMFuzzerTestOneInput (line 36) | int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
FILE: src/Tests/Fuzzers/fuzzer-usb-descriptor.cpp
class DummyHooks (line 33) | class DummyHooks : public USBDescriptorParserHooks
method loadUSBDescriptor (line 36) | void loadUSBDescriptor(USBDescriptorParser* parser, const USBDescripto...
function LLVMFuzzerTestOneInput (line 47) | int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
FILE: src/Tests/Regression/github-PR209-config-parser.cpp
function createFile (line 34) | static std::string createFile(const std::vector<std::string> lines)
FILE: src/test_filesystem.cpp
function main (line 19) | int main()
Condensed preview — 468 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (7,876K chars).
[
{
"path": ".gitattributes",
"chars": 35,
"preview": "src/ThirdParty/* linguist-vendored\n"
},
{
"path": ".github/dependabot.yml",
"chars": 937,
"preview": "##\n## Copyright (c) 2023 Sebastian Pipping <sebastian@pipping.org>\n##\n## This program is free software; you can redistri"
},
{
"path": ".github/workflows/build.yml",
"chars": 4143,
"preview": "name: C/C++ CI\n\non:\n push:\n pull_request:\n schedule:\n - cron: '0 4 * * 5' # Every Friday at 4am\n\n# Drop permissio"
},
{
"path": ".github/workflows/docker.yml",
"chars": 2060,
"preview": "##\n## Copyright (c) 2022 Sebastian Pipping <sebastian@pipping.org>\n##\n## This program is free software; you can redistri"
},
{
"path": ".github/workflows/polkit.yml",
"chars": 2468,
"preview": "##\n## Copyright (c) 2022 Sebastian Pipping <sebastian@pipping.org>\n##\n## This program is free software; you can redistri"
},
{
"path": ".gitignore",
"chars": 397,
"preview": "/libusbguard.pc\n/usbguard\n/usbguard-daemon\n/usbguard-daemon.conf\n/usbguard-dbus\n/usbguard-rule-parser\nMakefile\nMakefile."
},
{
"path": ".gitmodules",
"chars": 211,
"preview": "[submodule \"src/ThirdParty/Catch\"]\n\tpath = src/ThirdParty/Catch\n\turl = https://github.com/philsquared/Catch\n[submodule \""
},
{
"path": ".lgtm.yml",
"chars": 571,
"preview": "# lgtm.yml configuration file for C/C++ analysis\n# of USBGuard on lgtm.com:\n# https://lgtm.com/projects/g/USBGuard/usbgu"
},
{
"path": "CHANGELOG.md",
"chars": 20562,
"preview": "# Change Log\n\n## 1.1.4 - 2025-07-15\n\n### Fixed\n\n- Add tmpfiles.d file for /var/log/usbguard\n- Ignore errors from rmdir d"
},
{
"path": "LICENSE",
"chars": 18092,
"preview": " GNU GENERAL PUBLIC LICENSE\n Version 2, June 1991\n\n Copyright (C) 1989, 1991 Fr"
},
{
"path": "Makefile.am",
"chars": 18351,
"preview": "##\n## Copyright (C) 2016 Red Hat, Inc.\n##\n## This program is free software; you can redistribute it and/or modify\n## it "
},
{
"path": "README.adoc",
"chars": 5283,
"preview": "USBGuard\n========\n:toc:\n\n[.clearfix]\n--\n[.left]\nimage::https://travis-ci.com/USBGuard/usbguard.svg?branch=master[Travis "
},
{
"path": "RELEASE_PROCESS.md",
"chars": 1480,
"preview": "# USBGuard Release Process\n\n1. Clean up any artifacts from your local repository.\n\n```\n$ git clean -xfd\n```\n\n2. Setup bu"
},
{
"path": "VERSION",
"chars": 6,
"preview": "1.1.4\n"
},
{
"path": "abi-ref/libusbguard.so.abi",
"chars": 1184918,
"preview": "<abi-corpus version='2.4' path='build/.libs/libusbguard.so' architecture='elf-amd-x86_64' soname='libusbguard.so.1'>\n <"
},
{
"path": "autogen.sh",
"chars": 840,
"preview": "#!/bin/sh\n##\n## Copyright (C) 2016 Red Hat, Inc.\n##\n## This program is free software; you can redistribute it and/or mod"
},
{
"path": "configure.ac",
"chars": 29319,
"preview": "AC_PREREQ([2.69])\nAC_INIT([usbguard],\n m4_esyscmd_s([cat VERSION]),\n [usbguard@usbguard.org])\nAC_CONFIG_SR"
},
{
"path": "doc/man/.gitignore",
"chars": 45,
"preview": "/*.1\n/*.1.roff\n/*.5\n/*.5.roff\n/*.8\n/*.8.roff\n"
},
{
"path": "doc/man/example-allow-device.adoc",
"chars": 275,
"preview": "....\n # Allow a device by ID(it is the very first number from the list-devices command output)\n $ sudo usbguard al"
},
{
"path": "doc/man/example-initial-policy.adoc",
"chars": 229,
"preview": "....\n $ sudo usbguard generate-policy > rules.conf\n $ vi rules.conf\n (review/modify the rule set)\n $ sudo in"
},
{
"path": "doc/man/footer.adoc",
"chars": 590,
"preview": "== BUGS\nIf you find a bug in this software or if you'd like to request a feature to be implemented, please file a ticket"
},
{
"path": "doc/man/usbguard-daemon.8.adoc",
"chars": 2069,
"preview": "usbguard-daemon(8)\n==================\n:doctype: manpage\n\n\n== NAME\nusbguard-daemon - USBGuard daemon\n\n\n== SYNOPSIS\nusbgua"
},
{
"path": "doc/man/usbguard-daemon.conf.5.adoc",
"chars": 8782,
"preview": "usbguard-daemon.conf(5)\n=======================\n:doctype: manpage\n\n\n== NAME\nusbguard-daemon.conf - USBGuard daemon confi"
},
{
"path": "doc/man/usbguard-dbus.8.adoc",
"chars": 503,
"preview": "usbguard-dbus(8)\n================\n:doctype: manpage\n\n\n== NAME\nusbguard-dbus - USBGuard D-Bus interface service\n\n\n== SYNO"
},
{
"path": "doc/man/usbguard-ldap.conf.5.adoc",
"chars": 2372,
"preview": "usbguard-ldap.conf(5)\n=====================\n:doctype: manpage\n\n\n== NAME\nusbguard-ldap.conf - USBGuard daemon ldap config"
},
{
"path": "doc/man/usbguard-rules.conf.5.adoc",
"chars": 13224,
"preview": "usbguard-rules.conf(5)\n======================\n:doctype: manpage\n\n\n== NAME\nusbguard-rules.conf - USBGuard rule set file.\n"
},
{
"path": "doc/man/usbguard.1.adoc",
"chars": 8292,
"preview": "usbguard(1)\n===========\n:doctype: manpage\n\n\n== NAME\nusbguard - USBGuard command-line interface\n\n\n== SYNOPSIS\n\nusbguard ["
},
{
"path": "libusbguard.pc.in",
"chars": 274,
"preview": "prefix=@prefix@\nexec_prefix=@exec_prefix@\nlibdir=@libdir@\nincludedir=@includedir@/usbguard\n\nName: libusbguard\nDescriptio"
},
{
"path": "m4/ax_check_compile_flag.m4",
"chars": 3330,
"preview": "# ===========================================================================\n# http://www.gnu.org/software/autoconf-a"
},
{
"path": "m4/ax_pthread.m4",
"chars": 18391,
"preview": "# ===========================================================================\n# http://www.gnu.org/software/autoc"
},
{
"path": "m4/libgcrypt.m4",
"chars": 4717,
"preview": "dnl Autoconf macros for libgcrypt\ndnl Copyright (C) 2002, 2004, 2011 Free Software Foundation, Inc.\ndnl\ndnl This f"
},
{
"path": "scripts/astyle.sh",
"chars": 859,
"preview": "#!/bin/bash\n#\n# Copyright (C) 2017 Red Hat, Inc.\n#\n# This program is free software; you can redistribute it and/or modif"
},
{
"path": "scripts/bash_completion/usbguard",
"chars": 11823,
"preview": "_usbguard_get_ids() {\n usbguard list-devices 2>/dev/null | cut -d \":\" -f1\n}\n\n_usbguard_get_rules() {\n usbguard lis"
},
{
"path": "scripts/copr-build-srpm.sh",
"chars": 2163,
"preview": "#!/bin/bash\n#\n# Copyright (C) 2016 Red Hat, Inc.\n#\n# This program is free software; you can redistribute it and/or modif"
},
{
"path": "scripts/docker/build_on_alpine_linux_3_21.Dockerfile",
"chars": 1877,
"preview": "##\n## Copyright (c) 2022 Sebastian Pipping <sebastian@pipping.org>\n##\n## This program is free software; you can redistri"
},
{
"path": "scripts/docker/build_on_centos_8_2.Dockerfile",
"chars": 2168,
"preview": "##\n## Copyright (c) 2022 Sebastian Pipping <sebastian@pipping.org>\n##\n## This program is free software; you can redistri"
},
{
"path": "scripts/docker/build_on_debian_buster_with_gcc_9_2.Dockerfile",
"chars": 2371,
"preview": "##\n## Copyright (c) 2022 Sebastian Pipping <sebastian@pipping.org>\n##\n## This program is free software; you can redistri"
},
{
"path": "scripts/docker/build_on_ubuntu_22_04.Dockerfile",
"chars": 2119,
"preview": "##\n## Copyright (c) 2022 Sebastian Pipping <sebastian@pipping.org>\n##\n## This program is free software; you can redistri"
},
{
"path": "scripts/docker/build_on_ubuntu_25_04.Dockerfile",
"chars": 2207,
"preview": "##\n## Copyright (c) 2025 Sebastian Pipping <sebastian@pipping.org>\n##\n## This program is free software; you can redistri"
},
{
"path": "scripts/ldap/ldap.sh",
"chars": 700,
"preview": "#!/bin/bash\n\nset -e\n\nBASE=\"dc=example,dc=com\"\nUSER=\"cn=Manager,$BASE\"\n\nHOST=\"192.168.122.83\"\nPASS=\"passme\"\n\nping -q -c 1"
},
{
"path": "scripts/ldap/schema2ldif.pl",
"chars": 1057,
"preview": "#!/usr/bin/env perl\n# Converts OpenLDAP schema from traditional slapd.conf format to LDIF format\n# usable for importing "
},
{
"path": "scripts/ldap/setup.ldif",
"chars": 187,
"preview": "dn: dc=test,dc=com\nobjectclass: dcObject\nobjectclass: organization\ndc: test\no: \"Test server\"\n\ndn: ou=USBGuard,dc=test,dc"
},
{
"path": "scripts/ldap/usbguard-policy.ldif",
"chars": 1278,
"preview": "dn: cn=Rule1,ou=USBGuard,dc=test,dc=com\nobjectClass: USBGuardPolicy\nobjectClass: top\ncn: Rule1\nRuleType: allow\nUSBGuardH"
},
{
"path": "scripts/ldap/usbguard.ldif",
"chars": 2952,
"preview": "dn: cn=usbguard,cn=schema,cn=config\nobjectClass: olcSchemaConfig\ncn: usbguard\nolcAttributeTypes: ( 1.3.6.1.4.1.15955.9.1"
},
{
"path": "scripts/ldap/usbguard.schema",
"chars": 2756,
"preview": "attributetype ( 1.3.6.1.4.1.15955.9.1.1\n NAME 'USBGuardRuleTarget'\n DESC 'Hostname for USBGuard host'\n EQUALITY caseE"
},
{
"path": "scripts/modeline.vim",
"chars": 17,
"preview": "set ts=2 sw=2 et\n"
},
{
"path": "scripts/reformat-sources.sh",
"chars": 1294,
"preview": "#!/bin/bash\n#\n# Copyright (C) 2017 Red Hat, Inc.\n#\n# This program is free software; you can redistribute it and/or modif"
},
{
"path": "scripts/rule-generator.sh",
"chars": 4299,
"preview": "#!/bin/sh\n#\n# Copyright (C) 2016 Red Hat, Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n"
},
{
"path": "scripts/usb-descriptor-collect.sh",
"chars": 2692,
"preview": "#!/bin/bash\n#\n# Copyright (C) 2016 Red Hat, Inc.\n#\n# This program is free software; you can redistribute it and/or modif"
},
{
"path": "scripts/usbguard-zsh-completion",
"chars": 6179,
"preview": "#compdef usbguard\n#autoload\n\n# usbguard completion, based on cli help text\n\nlocal curcontext=\"$curcontext\" state line re"
},
{
"path": "src/.gitignore",
"chars": 35,
"preview": "/build-config.h\n/build-config.h.in\n"
},
{
"path": "src/CLI/IPCSignalWatcher.cpp",
"chars": 9755,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/IPCSignalWatcher.hpp",
"chars": 2294,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/PolicyGenerator.cpp",
"chars": 4033,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/PolicyGenerator.hpp",
"chars": 2121,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-add-user.cpp",
"chars": 4711,
"preview": "//\n// Copyright (C) 2017 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-add-user.hpp",
"chars": 944,
"preview": "//\n// Copyright (C) 2017 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-allow-device.cpp",
"chars": 1193,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-allow-device.hpp",
"chars": 948,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-append-rule.cpp",
"chars": 2875,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-append-rule.hpp",
"chars": 947,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-apply-device-policy.cpp",
"chars": 4562,
"preview": "//\n// Copyright (C) 2020 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-apply-device-policy.hpp",
"chars": 1012,
"preview": "//\n// Copyright (C) 2020 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-block-device.cpp",
"chars": 1193,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-block-device.hpp",
"chars": 948,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-generate-policy.cpp",
"chars": 6448,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-generate-policy.hpp",
"chars": 951,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-get-parameter.cpp",
"chars": 2665,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-get-parameter.hpp",
"chars": 949,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-list-devices.cpp",
"chars": 5874,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-list-devices.hpp",
"chars": 948,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-list-rules.cpp",
"chars": 2754,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-list-rules.hpp",
"chars": 946,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-print-version.cpp",
"chars": 2461,
"preview": "//\n// Copyright (C) 2022 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-print-version.hpp",
"chars": 949,
"preview": "//\n// Copyright (C) 2022 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-read-descriptor.cpp",
"chars": 8260,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-read-descriptor.hpp",
"chars": 951,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-reject-device.cpp",
"chars": 1196,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-reject-device.hpp",
"chars": 949,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-remove-rule.cpp",
"chars": 2100,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-remove-rule.hpp",
"chars": 947,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-remove-user.cpp",
"chars": 3336,
"preview": "//\n// Copyright (C) 2017 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-remove-user.hpp",
"chars": 947,
"preview": "//\n// Copyright (C) 2017 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-rule-parser.cpp",
"chars": 4569,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-set-parameter.cpp",
"chars": 3005,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-set-parameter.hpp",
"chars": 949,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-watch.cpp",
"chars": 4015,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard-watch.hpp",
"chars": 941,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard.cpp",
"chars": 5674,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/CLI/usbguard.hpp",
"chars": 1023,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Common/ByteOrder.hpp",
"chars": 1038,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Common/FDInputStream.hpp",
"chars": 2737,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Common/LDAPUtil.cpp",
"chars": 4285,
"preview": "//\n// Copyright (C) 2017 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Common/LDAPUtil.hpp",
"chars": 1710,
"preview": "//\n// Copyright (C) 2017 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Common/Thread.hpp",
"chars": 2577,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Common/Utility.cpp",
"chars": 15094,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Common/Utility.hpp",
"chars": 8670,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/DBus/.gitignore",
"chars": 35,
"preview": "/DBusInterface.xml.cstr\n/*.service\n"
},
{
"path": "src/DBus/DBusBridge.cpp",
"chars": 19483,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/DBus/DBusBridge.hpp",
"chars": 3553,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/DBus/DBusInterface.xml",
"chars": 10566,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE node PUBLIC\n \"-//freedesktop//DTD D-Bus Object Introspection 1.0//EN\""
},
{
"path": "src/DBus/README.adoc",
"chars": 124,
"preview": "USBGuard DBus\n=============\n\n== Generating DBus documentation\n\n[source,bash]\n----\ninclude::generate-documentation.sh[]\n-"
},
{
"path": "src/DBus/gdbus-server.cpp",
"chars": 8727,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/DBus/generate-documentation.sh",
"chars": 1266,
"preview": "#!/bin/sh\n#\n# Copyright (C) 2018 Red Hat, Inc.\n#\n# This program is free software; you can redistribute it and/or modify\n"
},
{
"path": "src/DBus/org.usbguard1.conf",
"chars": 619,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE busconfig PUBLIC\n \"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
},
{
"path": "src/DBus/org.usbguard1.policy",
"chars": 2603,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE policyconfig PUBLIC \"-//freedesktop//DTD PolicyKit Policy Configuration"
},
{
"path": "src/DBus/org.usbguard1.service.in",
"chars": 117,
"preview": "[D-BUS Service]\nName=org.usbguard1\nExec=%{sbindir}%/usbguard-dbus --system\nSystemdService=dbus-org.usbguard.service\n\n"
},
{
"path": "src/DBus/usbguard-dbus.service.in",
"chars": 281,
"preview": "[Unit]\nDescription=USBGuard D-Bus Service\nRequires=usbguard.service\nDocumentation=man:usbguard-dbus(8)\n\n[Service]\nType=d"
},
{
"path": "src/Daemon/Daemon.cpp",
"chars": 35521,
"preview": "//\n// Copyright (C) 2017 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Daemon/Daemon.hpp",
"chars": 5652,
"preview": "//\n// Copyright (C) 2017 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Daemon/FileAuditBackend.cpp",
"chars": 1459,
"preview": "//\n// Copyright (C) 2017 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Daemon/FileAuditBackend.hpp",
"chars": 1010,
"preview": "//\n// Copyright (C) 2017 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Daemon/FileRuleSet.cpp",
"chars": 2776,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Daemon/FileRuleSet.hpp",
"chars": 1600,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Daemon/LDAPHandler.cpp",
"chars": 9309,
"preview": "//\n// Copyright (C) 2017 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Daemon/LDAPHandler.hpp",
"chars": 1893,
"preview": "//\n// Copyright (C) 2017 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Daemon/LDAPRuleSet.cpp",
"chars": 3325,
"preview": "//\n// Copyright (C) 2017 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Daemon/LDAPRuleSet.hpp",
"chars": 1697,
"preview": "//\n// Copyright (C) 2017 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Daemon/LinuxAuditBackend.cpp",
"chars": 8355,
"preview": "//\n// Copyright (C) 2017 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Daemon/LinuxAuditBackend.hpp",
"chars": 1098,
"preview": "//\n// Copyright (C) 2017 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Daemon/NSHandler.cpp",
"chars": 4825,
"preview": "//\n// Copyright (C) 2017 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Daemon/NSHandler.hpp",
"chars": 2124,
"preview": "//\n// Copyright (C) 2017 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Daemon/RuleSetFactory.cpp",
"chars": 3390,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Daemon/RuleSetFactory.hpp",
"chars": 1490,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Daemon/Seccomp.c",
"chars": 6771,
"preview": "//\n// Copyright (C) 2017 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Daemon/Seccomp.h",
"chars": 974,
"preview": "//\n// Copyright (C) 2017 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Daemon/main.cpp",
"chars": 6194,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/AllowedMatchesCondition.cpp",
"chars": 2007,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/AllowedMatchesCondition.hpp",
"chars": 1434,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/Base64.cpp",
"chars": 7139,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/Base64.hpp",
"chars": 1377,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/ConfigFilePrivate.cpp",
"chars": 4421,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/ConfigFilePrivate.hpp",
"chars": 1983,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/DeviceBase.cpp",
"chars": 7936,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/DeviceBase.hpp",
"chars": 1781,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/DeviceManagerBase.cpp",
"chars": 12148,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/DeviceManagerBase.hpp",
"chars": 2775,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/DeviceManagerPrivate.cpp",
"chars": 4286,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/DeviceManagerPrivate.hpp",
"chars": 2491,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/DevicePrivate.cpp",
"chars": 9486,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/DevicePrivate.hpp",
"chars": 3506,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/FixedStateCondition.cpp",
"chars": 1456,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/FixedStateCondition.hpp",
"chars": 1295,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/Hash.cpp",
"chars": 5649,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/Hash.hpp",
"chars": 1792,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/IPC/.gitignore",
"chars": 17,
"preview": "/*.pb.cc\n/*.pb.h\n"
},
{
"path": "src/Library/IPC/Devices.proto",
"chars": 1370,
"preview": "package usbguard.IPC;\n\nimport \"Message.proto\";\nimport \"Rule.proto\";\n\n\nmessage listDevicesRequest {\n required string que"
},
{
"path": "src/Library/IPC/Exception.proto",
"chars": 170,
"preview": "package usbguard.IPC;\n\nmessage Exception {\n required string context = 1;\n required string object = 2;\n required strin"
},
{
"path": "src/Library/IPC/Message.proto",
"chars": 75,
"preview": "package usbguard.IPC;\n\nmessage MessageHeader {\n required uint64 id = 1;\n}\n"
},
{
"path": "src/Library/IPC/Parameter.proto",
"chars": 632,
"preview": "package usbguard.IPC;\n\nimport \"Message.proto\";\n\n\nmessage setParameterRequest {\n required string name = 1;\n required st"
},
{
"path": "src/Library/IPC/Policy.proto",
"chars": 1323,
"preview": "package usbguard.IPC;\n\nimport \"Message.proto\";\nimport \"Rule.proto\";\n\nmessage listRulesRequest {\n required string label "
},
{
"path": "src/Library/IPC/Rule.proto",
"chars": 94,
"preview": "package usbguard.IPC;\n\nmessage Rule {\n required uint32 id = 1;\n required string rule = 2;\n}\n"
},
{
"path": "src/Library/IPCClientPrivate.cpp",
"chars": 18080,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/IPCClientPrivate.hpp",
"chars": 4598,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/IPCPrivate.cpp",
"chars": 4365,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/IPCPrivate.hpp",
"chars": 3920,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/IPCServerPrivate.cpp",
"chars": 36311,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/IPCServerPrivate.hpp",
"chars": 6675,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/Init.cpp",
"chars": 2096,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/KeyValueParserPrivate.cpp",
"chars": 3848,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/KeyValueParserPrivate.hpp",
"chars": 1969,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/LocaltimeCondition.cpp",
"chars": 4035,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/LocaltimeCondition.hpp",
"chars": 1532,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/RandomStateCondition.cpp",
"chars": 1746,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/RandomStateCondition.hpp",
"chars": 1456,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/RuleAppliedCondition.cpp",
"chars": 2640,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/RuleAppliedCondition.hpp",
"chars": 1448,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/RuleEvaluatedCondition.cpp",
"chars": 2673,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/RuleEvaluatedCondition.hpp",
"chars": 1456,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/RuleParser/Actions.hpp",
"chars": 14765,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/RuleParser/Grammar.hpp",
"chars": 7023,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/RulePrivate.cpp",
"chars": 11803,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/RulePrivate.hpp",
"chars": 5396,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/SysFSDevice.cpp",
"chars": 6026,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/SysFSDevice.hpp",
"chars": 1971,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/UEvent.cpp",
"chars": 3009,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/UEvent.hpp",
"chars": 1597,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/UEventDeviceManager.cpp",
"chars": 14639,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/UEventDeviceManager.hpp",
"chars": 1885,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/UEventParser.cpp",
"chars": 4719,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/UEventParser.hpp",
"chars": 1945,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/UMockdevDeviceDefinition.cpp",
"chars": 12352,
"preview": "//\n// Copyright (C) 2018 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/UMockdevDeviceDefinition.hpp",
"chars": 2185,
"preview": "//\n// Copyright (C) 2018 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/UMockdevDeviceManager.cpp",
"chars": 28359,
"preview": "//\n// Copyright (C) 2018 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/UMockdevDeviceManager.hpp",
"chars": 3114,
"preview": "//\n// Copyright (C) 2018 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/Utility.cpp",
"chars": 3976,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/Utility.hpp",
"chars": 1171,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/public/usbguard/Audit.cpp",
"chars": 7824,
"preview": "//\n// Copyright (C) 2017 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/public/usbguard/Audit.hpp",
"chars": 18886,
"preview": "//\n// Copyright (C) 2017 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/public/usbguard/ConfigFile.cpp",
"chars": 1761,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/public/usbguard/ConfigFile.hpp",
"chars": 3320,
"preview": "//\n// Copyright (C) 2017 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/public/usbguard/Device.cpp",
"chars": 4872,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/public/usbguard/Device.hpp",
"chars": 10567,
"preview": "//\n// Copyright (C) 2017 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/public/usbguard/DeviceManager.cpp",
"chars": 7501,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/public/usbguard/DeviceManager.hpp",
"chars": 12652,
"preview": "//\n// Copyright (C) 2017 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/public/usbguard/DeviceManagerHooks.cpp",
"chars": 1094,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/public/usbguard/DeviceManagerHooks.hpp",
"chars": 1822,
"preview": "//\n// Copyright (C) 2017 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/public/usbguard/Exception.hpp",
"chars": 4661,
"preview": "//\n// Copyright (C) 2016 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/public/usbguard/IPCClient.cpp",
"chars": 2541,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
},
{
"path": "src/Library/public/usbguard/IPCClient.hpp",
"chars": 7640,
"preview": "//\n// Copyright (C) 2015 Red Hat, Inc.\n//\n// This program is free software; you can redistribute it and/or modify\n// it "
}
]
// ... and 268 more files (download for full content)
About this extraction
This page contains the full source code of the dkopecek/usbguard GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 468 files (6.8 MB), approximately 1.8M tokens, and a symbol index with 830 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.