Skip to main content
This walkthrough covers two datasets that Desktop Integration and CI/CD Integration don’t: encryption and vulnerabilities. It’s Step 3 of the step-by-step path, but every method below works with sample data, so you can follow along even if you’re starting here. It shows three different ways to get there: scanning your source directly with the dedicated Crypto Finder CLI, querying the SCANOSS API interactively, or querying it from the command line with SCANOSS-PY. Pick whichever fits how you like to work.

Prerequisites

Before you begin, ensure you have:
  • A SCANOSS API key
  • Depending on which method you choose below: Go (for Crypto Finder), Postman, or Python with pip (for SCANOSS-PY)
Completed Desktop Integration? You can query the components it found. Starting fresh? Every method below also works with sample data or a new scan, so you don’t need to complete that guide first.

Overview

This guide demonstrates different ways to perform advanced analysis with SCANOSS:
  • Crypto Finder Dedicated CLI for deep cryptographic detection, including call-chain tracing into third-party dependencies and CycloneDX CBOM output
  • SCANOSS API with Postman Interactive API testing for cryptography and vulnerability queries
  • SCANOSS-PY Command-line tool for automated scanning and analysis
Choose the method that best fits your workflow, or use a combination of all three.

Crypto Finder (Command Line)

SCANOSS-PY queries cryptography data through the SCANOSS API, using the same component-matching approach as license detection. Crypto Finder takes a different approach: it’s a dedicated CLI, purpose-built for cryptographic detection, that scans your source directly with a rule-based engine (OpenGrep or Semgrep), traces cryptographic usage through your call graph, and can extend that tracing into your third-party dependencies, not just your own code.

Install Crypto Finder

Verify Installation:
Docker images are also available if you don’t have Go installed. See Installation for every install method.

Configure Your API Key

Crypto Finder needs a SCANOSS API key to fetch its curated, remotely-hosted cryptographic detection rules. Configure it with the configure command, so it persists across scans:
Alternatively, set it as an environment variable:
Both are read automatically on every scan; see Configuration for the full precedence order and config file format.

Scan for Cryptography

This uses SCANOSS’s curated, remotely-fetched cryptographic detection rules by default, and writes results as JSON to stdout. To also trace cryptographic usage into your third-party dependencies:

Generate a Cryptography Bill of Materials

For a standardised, shareable inventory of cryptographic assets, export as a CycloneDX CBOM instead:
For the full command reference, output schema, and CI/CD integration, see the Crypto Finder documentation.

SCANOSS with Postman

Postman provides an interactive way to explore the SCANOSS API and understand how advanced analysis works.

Prerequisites

  • Install Postman
  • SCANOSS API Key
  • Component PURLs (optional) — the standard identifier SCANOSS uses for software components, e.g. pkg:github/scanoss/scanoss.py. See Package URLs for the full format. The steps below include sample PURLs, so you can follow along without your own.

Setup Postman Environment

Create Environment Variables:
  1. In Postman, click Environments (left sidebar)
  2. Click Create Environment or +
  3. Name it “SCANOSS
  4. Add these variables:
  1. Activate the environment by clicking the checkmark next to SCANOSS in the left panel, or select SCANOSS from the environment dropdown in the top right corner

Query Cryptographic Algorithms

You can query PURLs from your scan results (obtained from Desktop Integration) or use the sample PURLs shown below to learn how the API works. Single Component Query:
  1. Create a new request by clicking the + icon in the tab bar
  2. Set request type to GET
  3. Enter URL:
  4. Click Params tab and add query parameters:
    • Key: purl Value: pkg:github/scanoss/scanoss.py (or use a PURL from your scan results)
    • Key: requirement Value: >1.3.5 (or use a version from your scan results)
  5. Click Authorization tab and configure:
    • Auth Type: Select API Key
    • Key: X-Api-Key
    • Value: {{api_key}}
    • Add to: Ensure it’s set to Header
  6. Click Send
Multiple Components Query:
  1. Create a new request
  2. Set request type to POST
  3. Enter URL:
  4. Click Authorization tab and configure:
    • Auth Type: Select API Key
    • Key: X-Api-Key
    • Value: {{api_key}}
    • Add to: Ensure it’s set to Header
  5. Click Headers tab and add:
    • Key: Content-Type Value: application/json
  6. Click Body tab, select raw and JSON
  7. Enter request body:
  8. Click Send

Query Cryptographic Hints

Hints reveal the encryption libraries, protocols and SDKs used by components.
  1. Create a new request
  2. Set request type to GET
  3. Enter URL:
  4. Add query parameters:
    • Key: purl Value: pkg:github/scanoss/scanoss.py
    • Key: requirement Value: v1.19.5
  5. Click Authorization tab and configure:
    • Auth Type: Select API Key
    • Key: X-Api-Key
    • Value: {{api_key}}
    • Add to: Ensure it’s set to Header
  6. Click Send
Expected Response:

Other Cryptography Endpoints

The Cryptography API covers more ground than the two queries above. Set these up in Postman the same way, just change the method and URL: Each of these also has a batch (/components) equivalent for querying multiple components at once. See the Cryptography API reference for full request and response formats.

Query Vulnerabilities

Single Component Vulnerability Query:
  1. Create a new request
  2. Set request type to GET
  3. Enter URL:
  4. Add query parameters:
    • Key: purl Value: pkg:npm/lodash
    • Key: requirement Value: 4.17.20
  5. Click Authorization tab and configure:
    • Auth Type: Select API Key
    • Key: X-Api-Key
    • Value: {{api_key}}
    • Add to: Ensure it’s set to Header
  6. Click Send
Expected Response:
Multiple Components Vulnerability Query:
  1. Create a new request
  2. Set request type to POST
  3. Enter URL:
  4. Click Authorization tab and configure:
    • Auth Type: Select API Key
    • Key: X-Api-Key
    • Value: {{api_key}}
    • Add to: Ensure it’s set to Header
  5. Click Headers tab and add:
    • Key: Content-Type Value: application/json
  6. Click Body tab, select raw and JSON, then add body:
  7. Click Send

Other Vulnerability Endpoints

The Vulnerability API also provides CPE identifiers, useful for cross-referencing components against vulnerability databases outside SCANOSS: See the Vulnerability API reference for full request and response formats.

Save Postman Collection

To reuse these requests:
  1. Click Collections (left sidebar)
  2. Click Create Collection or +
  3. Name it “SCANOSS Advanced Analysis
  4. Click into each of your requests, then click save request o nthe right hand side, select the collection and click save
  5. Click next to collection name > More > Export > Continue with Export > Export JSON
  6. Share the exported JSON with your team
For additional details, refer to the following documentation:

SCANOSS-PY (Command Line)

SCANOSS-PY provides powerful command-line capabilities for automated scanning and analysis. Haven’t installed it yet? pip install scanoss (see Desktop Integration for the full walkthrough, including verifying the install).

Detect Cryptographic Algorithms

You have two options for analysing cryptography, using the existing scan results or performing a new scan with focus on cryptographic detection. Analyze Existing Scan Results If you already have scan results from Desktop Integration, examine them for cryptography information:
Run a Fresh Scan Navigate to your project directory and run a new scan:
This scan generates a results.json file containing component metadata including PURLs, versions and detected cryptography information.

Query Cryptographic Algorithms

After identifying components with cryptography, you can query detailed algorithm information. Extract Component PURLs:
Query Single Component: Get specific algorithm details for a component you’re interested in (use a PURL from your scan results or try the sample below):
Query Multiple Components: For analysing multiple components at once, create a PURL input file:

Query Cryptographic Hints

Cryptographic hints reveal the encryption libraries, protocols and SDKs used by your components:
For additional command-line options and examples, refer to the crypto command reference.

Query Vulnerabilities

Vulnerability analysis identifies known security issues (CVEs) in your open source components, helping you prioritise security fixes. Query Single Component:
Query Multiple Components: For comprehensive vulnerability analysis across all your components:
For detailed command-line options and additional examples, refer to the vulns command reference.

What’s Next

With encryption and vulnerability detection covered, the last piece is turning this from a one-time scan into ongoing tracking: Continuous Monitoring. Need help? Contact our AI assistant