File Coverage

blib/lib/SBOM/CycloneDX/CryptoProperties/CipherSuite.pm
Criterion Covered Total %
statement 26 38 68.4
branch 0 10 0.0
condition n/a
subroutine 9 10 90.0
pod 1 1 100.0
total 36 59 61.0


line stmt bran cond sub pod time code
1             package SBOM::CycloneDX::CryptoProperties::CipherSuite;
2              
3 1     1   2296 use 5.010001;
  1         5  
4 1     1   6 use strict;
  1         2  
  1         25  
5 1     1   5 use warnings;
  1         2  
  1         71  
6 1     1   6 use utf8;
  1         3  
  1         8  
7              
8 1     1   39 use SBOM::CycloneDX::List;
  1         3  
  1         31  
9              
10 1     1   5 use Types::Standard qw(Str);
  1         2  
  1         8  
11 1     1   2064 use Types::TypeTiny qw(ArrayLike);
  1         3  
  1         8  
12              
13 1     1   742 use Moo;
  1         3  
  1         9  
14 1     1   448 use namespace::autoclean;
  1         2  
  1         13  
15              
16             extends 'SBOM::CycloneDX::Base';
17              
18             has name => (is => 'rw', isa => Str);
19             has algorithms => (is => 'rw', isa => ArrayLike [Str], default => sub { SBOM::CycloneDX::List->new });
20             has identifiers => (is => 'rw', isa => ArrayLike [Str], default => sub { SBOM::CycloneDX::List->new });
21             has tls_groups => (is => 'rw', isa => ArrayLike [Str], default => sub { SBOM::CycloneDX::List->new });
22             has tls_signature_schemes => (is => 'rw', isa => ArrayLike [Str], default => sub { SBOM::CycloneDX::List->new });
23              
24             sub TO_JSON {
25              
26 0     0 1   my $self = shift;
27              
28 0           my $json = {};
29              
30 0 0         $json->{name} = $self->name if $self->name;
31 0 0         $json->{algorithms} = $self->algorithms if @{$self->algorithms};
  0            
32 0 0         $json->{identifiers} = $self->identifiers if @{$self->identifiers};
  0            
33 0 0         $json->{tlsGroups} = $self->tls_groups if @{$self->tls_groups};
  0            
34 0 0         $json->{tlsSignatureSchemes} = $self->tls_signature_schemes if @{$self->tls_signature_schemes};
  0            
35              
36 0           return $json;
37              
38             }
39              
40             1;
41              
42             =encoding utf-8
43              
44             =head1 NAME
45              
46             SBOM::CycloneDX::CryptoProperties::CipherSuite - Object representing
47             a cipher suite
48              
49             =head1 SYNOPSIS
50              
51             SBOM::CycloneDX::CryptoProperties::CipherSuite->new();
52              
53              
54             =head1 DESCRIPTION
55              
56             L specifies the object
57             representing a cipher suite.
58              
59             =head2 METHODS
60              
61             L inherits all methods from L
62             and implements the following new ones.
63              
64             =over
65              
66             =item SBOM::CycloneDX::CryptoProperties::CipherSuite->new( %PARAMS )
67              
68             Properties:
69              
70             =over
71              
72             =item * C, A list of algorithms related to the cipher suite.
73              
74             =item * C, A list of common identifiers for the cipher suite.
75              
76             =item * C, A common name for the cipher suite.
77              
78             =item * C, A list of TLS named groups (formerly known as curves) for
79             this cipher suite. These groups define the parameters for key exchange algorithms
80             like ECDHE.
81              
82             =item * C, A list of signature schemes supported for cipher
83             suite. These schemes specify the algorithms used for digital signatures in TLS
84             handshakes and certificate verification.
85              
86             =back
87              
88             =item $cipher_suite->algorithms
89              
90             =item $cipher_suite->identifiers
91              
92             =item $cipher_suite->name
93              
94             =item $cipher_suite->tls_groups
95              
96             =item $cipher_suite->tls_signature_schemes
97              
98             =back
99              
100             =head1 SUPPORT
101              
102             =head2 Bugs / Feature Requests
103              
104             Please report any bugs or feature requests through the issue tracker
105             at L.
106             You will be notified automatically of any progress on your issue.
107              
108             =head2 Source Code
109              
110             This is open source software. The code repository is available for
111             public review and contribution under the terms of the license.
112              
113             L
114              
115             git clone https://github.com/giterlizzi/perl-SBOM-CycloneDX.git
116              
117              
118             =head1 AUTHOR
119              
120             =over 4
121              
122             =item * Giuseppe Di Terlizzi
123              
124             =back
125              
126              
127             =head1 LICENSE AND COPYRIGHT
128              
129             This software is copyright (c) 2025-2026 by Giuseppe Di Terlizzi.
130              
131             This is free software; you can redistribute it and/or modify it under
132             the same terms as the Perl 5 programming language system itself.
133              
134             =cut