Self-version verification for shared libraries
AssigneeArista Networks, Inc.
InventorsIshwar Naik, Kaustav Majumdar, Manish Singhvi, Sourav Basu, Ethan Rahn
Life of this patent
Estimating the term…
Abstract
Techniques that enable a shared library to perform self-version verification at the time of being dynamically loaded by a software application are provided. Self-version verification in this context refers to the process of verifying by the shared library that it is the library version the software application intends to use, without any intervention or involvement by the application.
Claims20
A method for implementing self-version verification by a shared library, the method comprising, at a time of building a software application that makes use of a version of the shared library:
- building a shared library file that embodies the version of the shared library, wherein the shared library file comprises self-version verification logic in a constructor function, and wherein the self-version verification logic includes a hash-based message authentication code (HMAC) name, a reference to a predefined HMAC path, and a reference to a predefined library path;
- computing an HMAC of the shared library file;
- assigning to the computed HMAC the HMAC name included in the self-version verification logic;
- configuring an installer process of the software application to place the shared library file at the predefined library path on a target device where the software application has been or will be installed;
- and
- configuring the installer process to place the computed HMAC at the predefined HMAC path on the target device.
A computer system comprising:
- one or more processors;
- and
- a non-transitory computer readable storage medium having stored thereon program code that, when executed by the one or more processors, causes the one or more processors to:
- build a shared library file that embodies the version of the shared library, wherein the shared library file comprises self-version verification logic in a constructor function, and wherein the self-version verification logic includes a hash-based message authentication code (HMAC) name, a reference to a predefined HMAC path, and a reference to a predefined library path;
- compute an HMAC of the shared library file;
- assign to the computed HMAC the HMAC name included in the self-version verification logic;
- configure an installer process of the software application to place the shared library file at the predefined library path on a target device where the software application has been or will be installed;
- and
- configure the installer process to place the computed HMAC at the predefined HMAC path on the target device.
A method for implementing self-version verification by a shared library, the method comprising, at a time of building a software application that makes use of a version of the shared library:
- building a shared library file that embodies the version of the shared library, wherein the shared library file comprises self-version verification logic, and wherein the self-version verification logic includes a cryptographic primitive or mathematical digest name, a reference to a predefined primitive or digest path, and a reference to a predefined library path;
- computing a cryptographic primitive or mathematical digest of the shared library file;
- assigning to the computed cryptographic primitive or mathematical digest the cryptographic primitive or mathematical digest name included in the self-version verification logic;
- configuring an installer process of the software application to place the shared library file at the predefined library path on a target device where the software application has been or will be installed;
- and
- configuring the installer process to place the computed cryptographic primitive or mathematical digest at the predefined primitive or digest path on the target device.
Dependencies are inferred from the claim text.