aws-samples / aws-cloudhsm-pkcs11-examples
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 35% duplication:
    • 5,028 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 1,775 duplicated lines
  • 325 duplicates
system35% (1,775 lines)
Duplication per Extension
c44% (1,571 lines)
h13% (204 lines)
Duplication per Component (primary)
src/wrapping64% (692 lines)
src/encrypt62% (360 lines)
src/sign72% (247 lines)
include/pkcs1115% (170 lines)
src/derivation32% (85 lines)
src/generate61% (76 lines)
src/digest43% (49 lines)
src/find_objects25% (43 lines)
src/tools6% (19 lines)
src/generate_random42% (14 lines)
src/mechanism_info2% (8 lines)
src/destroy18% (6 lines)
src/attributes2% (6 lines)
src/common0% (0 lines)

Duplication Between Components (50+ lines)

G src/derivation src/derivation src/encrypt src/encrypt src/derivation--src/encrypt 156 src/generate src/generate src/derivation--src/generate 81 src/sign src/sign src/derivation--src/sign 62 src/wrapping src/wrapping src/encrypt--src/wrapping 130 src/find_objects src/find_objects src/encrypt--src/find_objects 56 src/digest src/digest src/digest--src/encrypt 89 src/digest--src/wrapping 112 src/generate_random src/generate_random src/generate_random--src/wrapping 112 src/generate--src/wrapping 71 src/generate--src/sign 86 src/find_objects--src/wrapping 69 src/find_objects--src/generate 68 src/find_objects--src/sign 55 src/tools src/tools src/tools--src/wrapping 56

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 325 duplicates...
Size#FoldersFilesLinesCode
55 x 2 src/encrypt
src/encrypt
aes_cbc.c
aes_ecb.c
235:324 (30%)
58:147 (69%)
view
46 x 2 src/wrapping
src/wrapping
aes_wrapping.c
aes_zero_padding_wrapping.c
52:124 (68%)
48:120 (68%)
view
36 x 2 src/wrapping
src/wrapping
aes_wrapping_common.c
rsa_wrapping.c
145:183 (30%)
139:177 (12%)
view
36 x 2 src/wrapping
src/wrapping
aes_wrapping_common.c
rsa_wrapping.c
145:183 (30%)
243:281 (12%)
view
36 x 2 src/wrapping
src/wrapping
rsa_wrapping.c
rsa_wrapping.c
139:177 (12%)
243:281 (12%)
view
26 x 2 src/wrapping
src/wrapping
aes_no_padding_wrapping.c
aes_wrapping.c
81:122 (39%)
83:124 (38%)
view
26 x 2 src/wrapping
src/wrapping
aes_no_padding_wrapping.c
aes_zero_padding_wrapping.c
81:122 (39%)
79:120 (38%)
view
20 x 2 src/wrapping
src/wrapping
rsa_wrapping.c
unwrap_with_template.c
450:480 (6%)
315:345 (9%)
view
17 x 2 src/wrapping
src/wrapping
aes_gcm_wrapping.c
aes_zero_padding_wrapping.c
110:134 (21%)
95:120 (25%)
view
17 x 2 src/wrapping
src/wrapping
aes_wrapping.c
wrap_with_template.c
99:124 (25%)
235:260 (12%)
view
17 x 2 src/generate
src/generate
ec_generate.c
rsa_generate.c
44:64 (32%)
45:66 (40%)
view
17 x 2 src/wrapping
src/wrapping
aes_gcm_wrapping.c
aes_no_padding_wrapping.c
110:134 (21%)
97:122 (25%)
view
17 x 2 src/wrapping
src/wrapping
aes_gcm_wrapping.c
aes_wrapping.c
110:134 (21%)
99:124 (25%)
view
17 x 2 src/wrapping
src/wrapping
aes_no_padding_wrapping.c
wrap_with_template.c
97:122 (25%)
235:260 (12%)
view
17 x 2 src/wrapping
src/wrapping
aes_zero_padding_wrapping.c
wrap_with_template.c
95:120 (25%)
235:260 (12%)
view
17 x 2 src/wrapping
src/wrapping
aes_gcm_wrapping.c
wrap_with_template.c
110:134 (21%)
235:260 (12%)
view
16 x 2 src/wrapping
src/wrapping
rsa_wrapping.c
rsa_wrapping.c
348:374 (5%)
434:460 (5%)
view
16 x 2 src/sign
src/sign
ec_sign.c
ec_sign.c
58:84 (16%)
117:143 (16%)
view
15 x 2 src/derivation
src/encrypt
ecdh.c
aes_gcm.c
265:288 (8%)
175:198 (13%)
view
15 x 2 src/find_objects
src/sign
find_objects.c
rsa_sign.c
130:146 (8%)
40:56 (15%)
view
Duplicated Units
The list of top 2 duplicated units.
See data for all 2 unit duplicates...
Size#FoldersFilesLinesCode
14 x 2 src/wrapping
src/wrapping
unwrap_with_template.c
wrap_with_template.c
79:95 
124:140 
view
12 x 2 src/wrapping
src/wrapping
unwrap_with_template.c
wrap_with_template.c
169:183 
99:113 
view