SlideShare una empresa de Scribd logo
1 de 3
Descargar para leer sin conexión
Compiling OpenSSL For Windows
Introduction
In order to support more advanced features planned in future releases, ClamAV has switched to
using OpenSSL for hashing. The ClamAV Visual Studio project included with ClamAV’s
source code requires the OpenSSL distributables to be placed in a specific directory. This article will
teach you how to compile OpenSSL on a Microsoft Windows system and how to link ClamAV against
OpenSSL.
This blog article is based on another article.
Prerequisites
You will need ActiveState ActivePerl installed. OpenSSL uses Perl-based Makefiles. You will also
need Visual Studio 2010 or later.
Download OpenSSL
You can find OpenSSL’s source here. Download the latest version. When this article was first
authored, the latest version of OpenSSL was 1.0.1h. This article will reference that version
throughout.
We will be using separate build and installation directories for 32bit and 64bit compilations.
We’ll extract the source code twice, to C:openssl-src-32 and C:openss-src-64. We’ll
then create two directories to hold the OpenSSL installation: C:openssl-build-32 and C:openssl-
build-64.
Compiling OpenSSL
We will first build the 32bit libraries. You will need to open a Visual Studio 32bit command prompt.
Please note that you cannot build OpenSSL 64bit from a 32bit Visual Studio command prompt and
vice-versa.
We’ll run these commands in the command prompt:
C:
cd openssl-src-32
perl Configure VC-WIN32—prefix=C:openssl-build-32
msdo_ms
nmake -f msntdll.mak
nmake -f msntdll.mak install
Once those commands have run, you’ll need to create the 64bit OpenSSL distributables in a
Visual Studio x64 comamnd prompt:
C:
cd openssl-src-64
perl Configure VC-WIN64A—prefix=C:openssl-build-64
msdo_win64a
nmake -f msntdll.mak
nmake -f msntdll.mak install
You now have both the 32bit and 64bit builds of OpenSSL compiled and installed in their respective
build directories.
ClamAV Dependencies Directory
Now that you have distributables for both 32bit and 64bit, we’ll now need to create the
directories where the ClamAV Visual Studio project expects the OpenSSL dependencies to be.
Create these directories:
C:clamdeps
C:clamdepswin32
C:clamdepswin32openssl
C:clamdepswin32openssllib
C:clamdepswin64
C:clamdepswin64openssl
C:clamdepswin64openssllib
Copy the 32bit directories and files over:
C:openssl-build-32include to C:clamdepswin32openssl
C:openssl-build-32liblibeay32.lib to C:clamdepswin32openssllib
C:openssl-build-32libssleay32.lib to C:clamdepswin32openssllib
C:openssl-build-32binlibeay32.dll to C:clamdepswin32openssllib
C:openssl-build-32binssleay32.dll to C:clamdepswin32openssllib
Now copy the 64bit directories and files over:
C:openssl-build-64include to C:clamdepswin64openssl
C:openssl-build-64liblibeay32.lib to C:clamdepswin64openssllib
C:openssl-build-64libssleay32.lib to C:clamdepswin64openssllib
C:openssl-build-64binlibeay32.dll to C:clamdepswin64openssllib
C:openssl-build-64binssleay32.dll to C:clamdepswin64openssllib
Conclusion
We’ve now built the OpenSSL libraries that ClamAV now depends on. ClamAV requires them
to be in C:clamdepswin32,64openssl.

Más contenido relacionado

La actualidad más candente

Docker on Windows - 101 to Production (half-day workshop)
Docker on Windows - 101 to Production (half-day workshop)Docker on Windows - 101 to Production (half-day workshop)
Docker on Windows - 101 to Production (half-day workshop)Elton Stoneman
 
WinOps 2017 - Docker on Windows, the Beginner's Guide
WinOps 2017 - Docker on Windows, the Beginner's GuideWinOps 2017 - Docker on Windows, the Beginner's Guide
WinOps 2017 - Docker on Windows, the Beginner's GuideElton Stoneman
 
ContainerSched 2017: Why Containers Will Take Over the World
ContainerSched 2017: Why Containers Will Take Over the WorldContainerSched 2017: Why Containers Will Take Over the World
ContainerSched 2017: Why Containers Will Take Over the WorldElton Stoneman
 
DockerCon EU 2017 - Docker on Windows workshop
DockerCon EU 2017 - Docker on Windows workshopDockerCon EU 2017 - Docker on Windows workshop
DockerCon EU 2017 - Docker on Windows workshopElton Stoneman
 
Ch2.setup.node.and.npm
Ch2.setup.node.and.npmCh2.setup.node.and.npm
Ch2.setup.node.and.npmRick Chang
 
Café com Arquitetura - Hello Docker Captain
Café com Arquitetura - Hello Docker CaptainCafé com Arquitetura - Hello Docker Captain
Café com Arquitetura - Hello Docker CaptainMurilo Beltrame
 
Tomcat Maven Plugin
Tomcat Maven PluginTomcat Maven Plugin
Tomcat Maven PluginOlivier Lamy
 
How do I update the crawford slackware box so that it is running the most up ...
How do I update the crawford slackware box so that it is running the most up ...How do I update the crawford slackware box so that it is running the most up ...
How do I update the crawford slackware box so that it is running the most up ...Paul Prawdzik
 
SFO15-TR6: Server Ecosystem Day (Part 6A)
SFO15-TR6: Server Ecosystem Day (Part 6A) SFO15-TR6: Server Ecosystem Day (Part 6A)
SFO15-TR6: Server Ecosystem Day (Part 6A) Linaro
 
Advanced microservices with .Net
Advanced microservices with .NetAdvanced microservices with .Net
Advanced microservices with .NetDon Schenck
 
Cloonix Overview
Cloonix OverviewCloonix Overview
Cloonix Overviewaterranova
 
Ordina SOFTC Presentation - TFS and JAVA, better together
Ordina SOFTC Presentation - TFS and JAVA, better togetherOrdina SOFTC Presentation - TFS and JAVA, better together
Ordina SOFTC Presentation - TFS and JAVA, better togetherOrdina Belgium
 
Xpirit MeetUp: Docker Windows Workshop
Xpirit MeetUp: Docker Windows WorkshopXpirit MeetUp: Docker Windows Workshop
Xpirit MeetUp: Docker Windows WorkshopElton Stoneman
 
Glassfish Web Stack Launch Jyri Virkki V2
Glassfish Web Stack Launch Jyri Virkki V2Glassfish Web Stack Launch Jyri Virkki V2
Glassfish Web Stack Launch Jyri Virkki V2Eduardo Pelegri-Llopart
 
Installation guide
Installation guideInstallation guide
Installation guidelaonap166
 
How do i update the crawford slackware box so that it is running the most up ...
How do i update the crawford slackware box so that it is running the most up ...How do i update the crawford slackware box so that it is running the most up ...
How do i update the crawford slackware box so that it is running the most up ...Paul Prawdzik
 

La actualidad más candente (20)

Docker on Windows - 101 to Production (half-day workshop)
Docker on Windows - 101 to Production (half-day workshop)Docker on Windows - 101 to Production (half-day workshop)
Docker on Windows - 101 to Production (half-day workshop)
 
WinOps 2017 - Docker on Windows, the Beginner's Guide
WinOps 2017 - Docker on Windows, the Beginner's GuideWinOps 2017 - Docker on Windows, the Beginner's Guide
WinOps 2017 - Docker on Windows, the Beginner's Guide
 
ContainerSched 2017: Why Containers Will Take Over the World
ContainerSched 2017: Why Containers Will Take Over the WorldContainerSched 2017: Why Containers Will Take Over the World
ContainerSched 2017: Why Containers Will Take Over the World
 
Installation instructions for R
Installation instructions for RInstallation instructions for R
Installation instructions for R
 
DockerCon EU 2017 - Docker on Windows workshop
DockerCon EU 2017 - Docker on Windows workshopDockerCon EU 2017 - Docker on Windows workshop
DockerCon EU 2017 - Docker on Windows workshop
 
Ch2.setup.node.and.npm
Ch2.setup.node.and.npmCh2.setup.node.and.npm
Ch2.setup.node.and.npm
 
Café com Arquitetura - Hello Docker Captain
Café com Arquitetura - Hello Docker CaptainCafé com Arquitetura - Hello Docker Captain
Café com Arquitetura - Hello Docker Captain
 
Tomcat Maven Plugin
Tomcat Maven PluginTomcat Maven Plugin
Tomcat Maven Plugin
 
How do I update the crawford slackware box so that it is running the most up ...
How do I update the crawford slackware box so that it is running the most up ...How do I update the crawford slackware box so that it is running the most up ...
How do I update the crawford slackware box so that it is running the most up ...
 
SFO15-TR6: Server Ecosystem Day (Part 6A)
SFO15-TR6: Server Ecosystem Day (Part 6A) SFO15-TR6: Server Ecosystem Day (Part 6A)
SFO15-TR6: Server Ecosystem Day (Part 6A)
 
Advanced microservices with .Net
Advanced microservices with .NetAdvanced microservices with .Net
Advanced microservices with .Net
 
Cloonix Overview
Cloonix OverviewCloonix Overview
Cloonix Overview
 
Building ovs
Building ovsBuilding ovs
Building ovs
 
Ordina SOFTC Presentation - TFS and JAVA, better together
Ordina SOFTC Presentation - TFS and JAVA, better togetherOrdina SOFTC Presentation - TFS and JAVA, better together
Ordina SOFTC Presentation - TFS and JAVA, better together
 
Xpirit MeetUp: Docker Windows Workshop
Xpirit MeetUp: Docker Windows WorkshopXpirit MeetUp: Docker Windows Workshop
Xpirit MeetUp: Docker Windows Workshop
 
CI-CD WITH GITLAB WORKFLOW
CI-CD WITH GITLAB WORKFLOWCI-CD WITH GITLAB WORKFLOW
CI-CD WITH GITLAB WORKFLOW
 
Docker at Flux7
Docker at Flux7Docker at Flux7
Docker at Flux7
 
Glassfish Web Stack Launch Jyri Virkki V2
Glassfish Web Stack Launch Jyri Virkki V2Glassfish Web Stack Launch Jyri Virkki V2
Glassfish Web Stack Launch Jyri Virkki V2
 
Installation guide
Installation guideInstallation guide
Installation guide
 
How do i update the crawford slackware box so that it is running the most up ...
How do i update the crawford slackware box so that it is running the most up ...How do i update the crawford slackware box so that it is running the most up ...
How do i update the crawford slackware box so that it is running the most up ...
 

Destacado

A família instituida por deus parte 6
A família instituida por deus   parte 6A família instituida por deus   parte 6
A família instituida por deus parte 6Nagel Servo
 
Po lcuaderno3 lagestiondecentrosinterculturales
Po lcuaderno3 lagestiondecentrosinterculturalesPo lcuaderno3 lagestiondecentrosinterculturales
Po lcuaderno3 lagestiondecentrosinterculturalesRossyPalmaM Palma M
 
A família instituida por deus parte 3
A família instituida por deus   parte 3A família instituida por deus   parte 3
A família instituida por deus parte 3Nagel Servo
 
A família instituida por deus parte 2
A família instituida por deus   parte 2A família instituida por deus   parte 2
A família instituida por deus parte 2Nagel Servo
 
Teori Organisasi Umum 2 - Kepemimpinan
Teori Organisasi Umum 2 - KepemimpinanTeori Organisasi Umum 2 - Kepemimpinan
Teori Organisasi Umum 2 - KepemimpinanSilmi Kaffah
 
Nguy hiểm Thoái hóa khớp gối
Nguy hiểm Thoái hóa khớp gốiNguy hiểm Thoái hóa khớp gối
Nguy hiểm Thoái hóa khớp gốiannette494
 
A família instituida por deus parte 5
A família instituida por deus   parte 5A família instituida por deus   parte 5
A família instituida por deus parte 5Nagel Servo
 
Jewelry Organizers That Are Ideal for Big Selections
Jewelry Organizers That Are Ideal for Big SelectionsJewelry Organizers That Are Ideal for Big Selections
Jewelry Organizers That Are Ideal for Big Selectionsjewelryorganiser44
 
7 must haves every girl should have
7 must haves every girl should have7 must haves every girl should have
7 must haves every girl should haveShen Holmes
 
Strategi Mendapatkan Beasiswa pendidikan
Strategi Mendapatkan Beasiswa pendidikanStrategi Mendapatkan Beasiswa pendidikan
Strategi Mendapatkan Beasiswa pendidikanMuhammad Singgih Z.A
 
Đừng để bệnh khớp tàn phá sức khỏe, tinh thần, cuộc sốn của bạn
Đừng để bệnh khớp tàn phá sức khỏe, tinh thần, cuộc sốn của bạnĐừng để bệnh khớp tàn phá sức khỏe, tinh thần, cuộc sốn của bạn
Đừng để bệnh khớp tàn phá sức khỏe, tinh thần, cuộc sốn của bạnmeagan781
 
Infracciones y-sanciones-de-los-estudiantes-lia-loayza
Infracciones y-sanciones-de-los-estudiantes-lia-loayzaInfracciones y-sanciones-de-los-estudiantes-lia-loayza
Infracciones y-sanciones-de-los-estudiantes-lia-loayzalia loayza
 

Destacado (20)

A família instituida por deus parte 6
A família instituida por deus   parte 6A família instituida por deus   parte 6
A família instituida por deus parte 6
 
Po lcuaderno3 lagestiondecentrosinterculturales
Po lcuaderno3 lagestiondecentrosinterculturalesPo lcuaderno3 lagestiondecentrosinterculturales
Po lcuaderno3 lagestiondecentrosinterculturales
 
A família instituida por deus parte 3
A família instituida por deus   parte 3A família instituida por deus   parte 3
A família instituida por deus parte 3
 
Examples
ExamplesExamples
Examples
 
A família instituida por deus parte 2
A família instituida por deus   parte 2A família instituida por deus   parte 2
A família instituida por deus parte 2
 
Common Framework and Integration
Common Framework and IntegrationCommon Framework and Integration
Common Framework and Integration
 
Po lcuaderno4 ensenaraconvivir.
Po lcuaderno4 ensenaraconvivir.Po lcuaderno4 ensenaraconvivir.
Po lcuaderno4 ensenaraconvivir.
 
Strategi pembelajaran
Strategi pembelajaranStrategi pembelajaran
Strategi pembelajaran
 
Teori Organisasi Umum 2 - Kepemimpinan
Teori Organisasi Umum 2 - KepemimpinanTeori Organisasi Umum 2 - Kepemimpinan
Teori Organisasi Umum 2 - Kepemimpinan
 
Nguy hiểm Thoái hóa khớp gối
Nguy hiểm Thoái hóa khớp gốiNguy hiểm Thoái hóa khớp gối
Nguy hiểm Thoái hóa khớp gối
 
Who I am
Who I amWho I am
Who I am
 
A família instituida por deus parte 5
A família instituida por deus   parte 5A família instituida por deus   parte 5
A família instituida por deus parte 5
 
Jewelry Organizers That Are Ideal for Big Selections
Jewelry Organizers That Are Ideal for Big SelectionsJewelry Organizers That Are Ideal for Big Selections
Jewelry Organizers That Are Ideal for Big Selections
 
Meu velho
Meu velhoMeu velho
Meu velho
 
Group work on integrating the learning into the regional flagships
Group work on integrating the learning into the regional flagshipsGroup work on integrating the learning into the regional flagships
Group work on integrating the learning into the regional flagships
 
7 must haves every girl should have
7 must haves every girl should have7 must haves every girl should have
7 must haves every girl should have
 
Vues d'un ulm
Vues d'un ulm Vues d'un ulm
Vues d'un ulm
 
Strategi Mendapatkan Beasiswa pendidikan
Strategi Mendapatkan Beasiswa pendidikanStrategi Mendapatkan Beasiswa pendidikan
Strategi Mendapatkan Beasiswa pendidikan
 
Đừng để bệnh khớp tàn phá sức khỏe, tinh thần, cuộc sốn của bạn
Đừng để bệnh khớp tàn phá sức khỏe, tinh thần, cuộc sốn của bạnĐừng để bệnh khớp tàn phá sức khỏe, tinh thần, cuộc sốn của bạn
Đừng để bệnh khớp tàn phá sức khỏe, tinh thần, cuộc sốn của bạn
 
Infracciones y-sanciones-de-los-estudiantes-lia-loayza
Infracciones y-sanciones-de-los-estudiantes-lia-loayzaInfracciones y-sanciones-de-los-estudiantes-lia-loayza
Infracciones y-sanciones-de-los-estudiantes-lia-loayza
 

Similar a Compiling OpenSSL For Windows

Percona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio CodePercona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio CodeFrederic Descamps
 
DataDrivenMtl 20170906 - SQL Server 2017 on Linux
DataDrivenMtl 20170906 - SQL Server 2017 on LinuxDataDrivenMtl 20170906 - SQL Server 2017 on Linux
DataDrivenMtl 20170906 - SQL Server 2017 on LinuxMichael Albo, MSc IT, MBA
 
OpenCV installation in windows visual studio
OpenCV installation in windows visual studioOpenCV installation in windows visual studio
OpenCV installation in windows visual studioPeter Jose
 
PVS-Studio Is Now in Chocolatey: Checking Chocolatey under Azure DevOps
PVS-Studio Is Now in Chocolatey: Checking Chocolatey under Azure DevOpsPVS-Studio Is Now in Chocolatey: Checking Chocolatey under Azure DevOps
PVS-Studio Is Now in Chocolatey: Checking Chocolatey under Azure DevOpsAndrey Karpov
 
Adding System Call to Kernel
Adding System Call to KernelAdding System Call to Kernel
Adding System Call to KernelMuhammad Bilal
 
BLCN532 Lab 1Set up your development environmentV2.0.docx
BLCN532 Lab 1Set up your development environmentV2.0.docxBLCN532 Lab 1Set up your development environmentV2.0.docx
BLCN532 Lab 1Set up your development environmentV2.0.docxmoirarandell
 
Microservices Server - MSS Workshop
Microservices Server - MSS WorkshopMicroservices Server - MSS Workshop
Microservices Server - MSS WorkshopWSO2
 
Deploying Windows Containers on Windows Server 2016
Deploying Windows Containers on Windows Server 2016Deploying Windows Containers on Windows Server 2016
Deploying Windows Containers on Windows Server 2016Ben Hall
 
Compile open cpn on windows
Compile open cpn on windowsCompile open cpn on windows
Compile open cpn on windowsrandikaucsc
 
Network Automation Tools
Network Automation ToolsNetwork Automation Tools
Network Automation ToolsEdwin Beekman
 
Docker4Drupal 2.1 for Development
Docker4Drupal 2.1 for DevelopmentDocker4Drupal 2.1 for Development
Docker4Drupal 2.1 for DevelopmentWebsolutions Agency
 
Start tracking your ruby infrastructure
Start tracking your ruby infrastructureStart tracking your ruby infrastructure
Start tracking your ruby infrastructureSergiy Kukunin
 
Workshop MSF4J - Getting Started with Microservices and Java
Workshop MSF4J - Getting Started with Microservices and JavaWorkshop MSF4J - Getting Started with Microservices and Java
Workshop MSF4J - Getting Started with Microservices and JavaEdgar Silva
 
OpenSCAP Overview(security scanning for docker image and container)
OpenSCAP Overview(security scanning for docker image and container)OpenSCAP Overview(security scanning for docker image and container)
OpenSCAP Overview(security scanning for docker image and container)Jooho Lee
 
Deploying applications to Windows Server 2016 and Windows Containers
Deploying applications to Windows Server 2016 and Windows ContainersDeploying applications to Windows Server 2016 and Windows Containers
Deploying applications to Windows Server 2016 and Windows ContainersBen Hall
 

Similar a Compiling OpenSSL For Windows (20)

Percona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio CodePercona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio Code
 
DataDrivenMtl 20170906 - SQL Server 2017 on Linux
DataDrivenMtl 20170906 - SQL Server 2017 on LinuxDataDrivenMtl 20170906 - SQL Server 2017 on Linux
DataDrivenMtl 20170906 - SQL Server 2017 on Linux
 
OpenCV installation in windows visual studio
OpenCV installation in windows visual studioOpenCV installation in windows visual studio
OpenCV installation in windows visual studio
 
PVS-Studio Is Now in Chocolatey: Checking Chocolatey under Azure DevOps
PVS-Studio Is Now in Chocolatey: Checking Chocolatey under Azure DevOpsPVS-Studio Is Now in Chocolatey: Checking Chocolatey under Azure DevOps
PVS-Studio Is Now in Chocolatey: Checking Chocolatey under Azure DevOps
 
Adding System Call to Kernel
Adding System Call to KernelAdding System Call to Kernel
Adding System Call to Kernel
 
Final Report - Spark
Final Report - SparkFinal Report - Spark
Final Report - Spark
 
BLCN532 Lab 1Set up your development environmentV2.0.docx
BLCN532 Lab 1Set up your development environmentV2.0.docxBLCN532 Lab 1Set up your development environmentV2.0.docx
BLCN532 Lab 1Set up your development environmentV2.0.docx
 
Microservices Server - MSS Workshop
Microservices Server - MSS WorkshopMicroservices Server - MSS Workshop
Microservices Server - MSS Workshop
 
Docker for a .NET web developer
Docker for a .NET web developerDocker for a .NET web developer
Docker for a .NET web developer
 
Deploying Windows Containers on Windows Server 2016
Deploying Windows Containers on Windows Server 2016Deploying Windows Containers on Windows Server 2016
Deploying Windows Containers on Windows Server 2016
 
Composer
ComposerComposer
Composer
 
Compile open cpn on windows
Compile open cpn on windowsCompile open cpn on windows
Compile open cpn on windows
 
Network Automation Tools
Network Automation ToolsNetwork Automation Tools
Network Automation Tools
 
Docker4Drupal 2.1 for Development
Docker4Drupal 2.1 for DevelopmentDocker4Drupal 2.1 for Development
Docker4Drupal 2.1 for Development
 
Docker containers on Windows
Docker containers on WindowsDocker containers on Windows
Docker containers on Windows
 
Start tracking your ruby infrastructure
Start tracking your ruby infrastructureStart tracking your ruby infrastructure
Start tracking your ruby infrastructure
 
Workshop MSF4J - Getting Started with Microservices and Java
Workshop MSF4J - Getting Started with Microservices and JavaWorkshop MSF4J - Getting Started with Microservices and Java
Workshop MSF4J - Getting Started with Microservices and Java
 
.Net Core
.Net Core.Net Core
.Net Core
 
OpenSCAP Overview(security scanning for docker image and container)
OpenSCAP Overview(security scanning for docker image and container)OpenSCAP Overview(security scanning for docker image and container)
OpenSCAP Overview(security scanning for docker image and container)
 
Deploying applications to Windows Server 2016 and Windows Containers
Deploying applications to Windows Server 2016 and Windows ContainersDeploying applications to Windows Server 2016 and Windows Containers
Deploying applications to Windows Server 2016 and Windows Containers
 

Último

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 

Último (20)

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 

Compiling OpenSSL For Windows

  • 1. Compiling OpenSSL For Windows Introduction In order to support more advanced features planned in future releases, ClamAV has switched to using OpenSSL for hashing. The ClamAV Visual Studio project included with ClamAV’s source code requires the OpenSSL distributables to be placed in a specific directory. This article will teach you how to compile OpenSSL on a Microsoft Windows system and how to link ClamAV against OpenSSL. This blog article is based on another article. Prerequisites You will need ActiveState ActivePerl installed. OpenSSL uses Perl-based Makefiles. You will also need Visual Studio 2010 or later. Download OpenSSL You can find OpenSSL’s source here. Download the latest version. When this article was first authored, the latest version of OpenSSL was 1.0.1h. This article will reference that version throughout. We will be using separate build and installation directories for 32bit and 64bit compilations. We’ll extract the source code twice, to C:openssl-src-32 and C:openss-src-64. We’ll then create two directories to hold the OpenSSL installation: C:openssl-build-32 and C:openssl- build-64. Compiling OpenSSL
  • 2. We will first build the 32bit libraries. You will need to open a Visual Studio 32bit command prompt. Please note that you cannot build OpenSSL 64bit from a 32bit Visual Studio command prompt and vice-versa. We’ll run these commands in the command prompt: C: cd openssl-src-32 perl Configure VC-WIN32—prefix=C:openssl-build-32 msdo_ms nmake -f msntdll.mak nmake -f msntdll.mak install Once those commands have run, you’ll need to create the 64bit OpenSSL distributables in a Visual Studio x64 comamnd prompt: C: cd openssl-src-64 perl Configure VC-WIN64A—prefix=C:openssl-build-64 msdo_win64a nmake -f msntdll.mak nmake -f msntdll.mak install You now have both the 32bit and 64bit builds of OpenSSL compiled and installed in their respective build directories. ClamAV Dependencies Directory Now that you have distributables for both 32bit and 64bit, we’ll now need to create the directories where the ClamAV Visual Studio project expects the OpenSSL dependencies to be. Create these directories: C:clamdeps C:clamdepswin32 C:clamdepswin32openssl C:clamdepswin32openssllib
  • 3. C:clamdepswin64 C:clamdepswin64openssl C:clamdepswin64openssllib Copy the 32bit directories and files over: C:openssl-build-32include to C:clamdepswin32openssl C:openssl-build-32liblibeay32.lib to C:clamdepswin32openssllib C:openssl-build-32libssleay32.lib to C:clamdepswin32openssllib C:openssl-build-32binlibeay32.dll to C:clamdepswin32openssllib C:openssl-build-32binssleay32.dll to C:clamdepswin32openssllib Now copy the 64bit directories and files over: C:openssl-build-64include to C:clamdepswin64openssl C:openssl-build-64liblibeay32.lib to C:clamdepswin64openssllib C:openssl-build-64libssleay32.lib to C:clamdepswin64openssllib C:openssl-build-64binlibeay32.dll to C:clamdepswin64openssllib C:openssl-build-64binssleay32.dll to C:clamdepswin64openssllib Conclusion We’ve now built the OpenSSL libraries that ClamAV now depends on. ClamAV requires them to be in C:clamdepswin32,64openssl.