Skip to content

Commit 7c1b471

Browse files
committed
bug: fixes cryptography scanner
1 parent f1d0d7e commit 7c1b471

File tree

7 files changed

+44
-23
lines changed

7 files changed

+44
-23
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22

33
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
44

5+
## [0.23.0] (2025-09-19)
6+
### Bug
7+
- Fixed bug in the cryptography scanner
8+
### Changed
9+
- Enhance http error handling on cryptography client
510

611
## [0.22.0] (2025-09-05)
712
### Added

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "scanoss",
3-
"version": "0.22.0",
3+
"version": "0.23.0",
44
"description": "The SCANOSS JS package provides a simple, easy to consume module for interacting with SCANOSS APIs/Engine.",
55
"main": "build/main/index.js",
66
"typings": "build/main/index.d.ts",

src/sdk/Clients/Cryptography/CryptographyGRPCClient.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ export class CryptographyGRPCClient extends BaseGRPCClient implements ICryptogra
120120

121121
private transformGrpcAlgorithmResponse(grpcResponse: any): AlgorithmResponse {
122122
return {
123-
purls: grpcResponse.purlsList?.map((purl: any) => ({
123+
components: grpcResponse.components?.map((purl: any) => ({
124124
purl: purl.purl,
125125
version: purl.version || '',
126126
algorithms: purl.algorithmsList?.map((algo: any) => ({
@@ -137,7 +137,7 @@ export class CryptographyGRPCClient extends BaseGRPCClient implements ICryptogra
137137

138138
private transformGrpcHintsResponse(grpcResponse: any): HintsInRangeResponse {
139139
return {
140-
purls: grpcResponse.purlsList?.map((purl: any) => ({
140+
components: grpcResponse.components?.map((purl: any) => ({
141141
purl: purl.purl,
142142
version: purl.version || '',
143143
versions: purl.versionsList || [],

src/sdk/Clients/Cryptography/CryptographyHttpClient.ts

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,21 @@ export class CryptographyHttpClient extends HttpClient implements ICryptographyC
3030
*/
3131
public async getAlgorithms(components: Component[]): Promise<AlgorithmResponse> {
3232
try {
33-
const baseURL = this.hostURL();
3433
validateComponents(components);
35-
const URL = `${this.hostURL()}/v2/cryptography/algorithms`;
36-
const response = await this.post(URL, { purls: components });
37-
34+
const URL = `${this.hostURL()}/v2/cryptography/algorithms/components`;
35+
const response = await this.post(URL, { components: components });
3836
if (response.ok) {
3937
const algorithms = await response.json();
4038
return algorithms as AlgorithmResponse;
4139
}
4240

41+
if(response.status === 404){
42+
const responseData = await response.json();
43+
const errorMessage = `Failed to get algorithms: ${response.status} ${response.statusText} - ${JSON.stringify(responseData)}`;
44+
logger.log(`Error getting algorithms: ${errorMessage}`);
45+
return responseData as AlgorithmResponse;
46+
}
47+
4348
const errorText = await response.text();
4449
const errorMessage = `Failed to get algorithms: ${response.status} ${response.statusText} - ${errorText}`;
4550
logger.log(`Error getting algorithms: ${errorMessage}`);
@@ -59,13 +64,26 @@ export class CryptographyHttpClient extends HttpClient implements ICryptographyC
5964
public async getEncryptionHints(components: Component[]): Promise<HintsInRangeResponse> {
6065
try {
6166
validateComponents(components);
62-
const URL = `${this.hostURL()}/v2/cryptography/hintsInRange`;
63-
const response = await this.post(URL, { purls: components });
67+
const URL = `${this.hostURL()}/v2/cryptography/hints/range/components`;
68+
const response = await this.post(URL, { components: components });
6469

6570
if (response.ok) {
6671
const hints = await response.json();
6772
return hints as HintsInRangeResponse;
6873
}
74+
if(response.status === 400){
75+
const errorText = await response.text();
76+
const errorMessage = `Failed to get encryption hints: ${response.status} ${response.statusText} - ${errorText}`;
77+
logger.log(`Error getting encryption hints: ${errorMessage}`);
78+
throw new Error(errorMessage);
79+
}
80+
81+
if(response.status === 404){
82+
const responseData = await response.json();
83+
const errorMessage = `Failed to get encryption hints: ${response.status} ${response.statusText} - ${JSON.stringify(responseData)}`;
84+
logger.log(`Error getting encryption hints: ${errorMessage}`);
85+
return responseData as HintsInRangeResponse;
86+
}
6987

7088
const errorText = await response.text();
7189
const errorMessage = `Failed to get encryption hints: ${response.status} ${response.statusText} - ${errorText}`;

src/sdk/Clients/Cryptography/ICryptographyClient.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export interface Status {
3030
}
3131

3232
export interface AlgorithmResponse {
33-
purls: ComponentAlgorithm[];
33+
components: ComponentAlgorithm[];
3434
status: Status;
3535
}
3636

@@ -40,7 +40,7 @@ export interface ComponentHintResponse extends Purl {
4040
}
4141

4242
export interface HintsInRangeResponse {
43-
purls: ComponentHintResponse[];
43+
components: ComponentHintResponse[];
4444
status: Status;
4545
}
4646

src/sdk/Components/ComponentsScanner.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,6 @@ export class ComponentsScanner {
4444
this.componentsClient = new ComponentsHttpClient(clientCfg);
4545
logger.log('Using HTTP client for components service');
4646
}
47-
48-
4947
}
5048

5149
/**

src/sdk/Cryptography/Helper/ResultCollector/Component/ComponentCryptographyResultColletor.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,11 @@ export class ComponentCryptographyResultCollector {
4343
* @param algorithmResults The algorithm detection results to collect.
4444
*/
4545
public collectAlgorithmResults(algorithmResults: AlgorithmResponse):void {
46-
algorithmResults.purls.forEach((p) => {
47-
if (p.version) {
48-
const version = p.version.startsWith('v') ? p.version.slice(1) : p.version;
49-
const result = this.getOrCreateResult(p.purl,version);
50-
result.algorithms = p.algorithms;
46+
algorithmResults.components.forEach((c) => {
47+
if (c.version) {
48+
const version = c.version.startsWith('v') ? c.version.slice(1) : c.version;
49+
const result = this.getOrCreateResult(c.purl,version);
50+
result.algorithms = c.algorithms;
5151
}
5252
});
5353
}
@@ -57,11 +57,11 @@ export class ComponentCryptographyResultCollector {
5757
* @param hintResults The hint detection results to collect.
5858
*/
5959
public collectHintResults(hintResults: HintsInRangeResponse):void {
60-
hintResults.purls.forEach((h) => {
61-
if (h.versions.length > 0) {
62-
const version = h.versions[0].startsWith('v') ? h.versions[0].slice(1) : h.versions[0];
63-
const result = this.getOrCreateResult(h.purl, version);
64-
result.hints = h.hints;
60+
hintResults.components.forEach((c) => {
61+
if (c.versions.length > 0) {
62+
const version = c.versions[0].startsWith('v') ? c.versions[0].slice(1) : c.versions[0];
63+
const result = this.getOrCreateResult(c.purl, version);
64+
result.hints = c.hints;
6565
}
6666
});
6767
}

0 commit comments

Comments
 (0)