else to try.
Thanks,
Christopher Zurcher
> -Original Message-
> From: Yao, Jiewen
> Sent: Tuesday, September 22, 2020 19:35
> To: Zurcher, Christopher J ; Jiang, Guomin
> ; devel@edk2.groups.io
> Cc: Wang, Jian J ; Lu, XiaoyuX ;
> Ard Biesheuvel
> Subject: RE: [
> -Original Message-
> From: devel@edk2.groups.io On Behalf Of gaoliming
> Sent: Thursday, September 24, 2020 17:49
> To: devel@edk2.groups.io; Zurcher, Christopher J
> ; Yao, Jiewen ; Jiang,
> Guomin
> Cc: Wang, Jian J ; Lu, XiaoyuX ;
> 'Ard Biesheuvel'
> Subject: 回
;
Is there a known build issue with CLANGPDB and the stdatomic.h file?
Thanks,
Christopher Zurcher
> -Original Message-
> From: Yao, Jiewen
> Sent: Tuesday, September 22, 2020 19:35
> To: Zurcher, Christopher J ; Jiang, Guomin
> ; devel@edk2.groups.io
> Cc: Wang, Jian J ; L
riginal Message-
> > From: devel@edk2.groups.io On Behalf Of Yao,
> > Jiewen
> > Sent: Tuesday, August 25, 2020 7:36 AM
> > To: Zurcher, Christopher J ;
> > devel@edk2.groups.io
> > Cc: Wang, Jian J ; Lu, XiaoyuX
> > ; Ard Biesheuvel
> > Subjec
OK, abandoning this patch set.
The BZ can stay open as we will still have to migrate the existing files to EVP
eventually.
--
Christopher Zurcher
> -Original Message-
> From: Yao, Jiewen
> Sent: Wednesday, September 16, 2020 18:34
> To: Zurcher, Christopher J ; Laszlo Erse
o: Yao, Jiewen ; devel@edk2.groups.io; Zurcher,
> Christopher J
>
> Cc: Wang, Jian J ; Lu, XiaoyuX
> Subject: Re: [edk2-devel] [PATCH v3 1/3] CryptoPkg/BaseCryptLib: Add EVP
> (Envelope) Digest interface
>
> On 09/16/20 16:17, Yao, Jiewen wrote:
> > Thank you Laszlo.
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2545
V3 changes:
Added list of valid Digest Names to EvpMdInit() header
Added missing copy of CryptEvpMdNull.c in BaseCryptLibNull folder
V2 changes:
Added NullLib implementation
Added Crypto Service implementation
Rebased Hash2DxeCrypto to use
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2545
Cc: Laszlo Ersek
Cc: Jiewen Yao
Cc: Jian J Wang
Signed-off-by: Christopher J Zurcher
---
SecurityPkg/Hash2DxeCrypto/Driver.h | 1 -
SecurityPkg/Hash2DxeCrypto/Hash2DxeCrypto.c | 345 ++--
2 files changed, 31
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2545
Cc: Laszlo Ersek
Cc: Jiewen Yao
Cc: Jian J Wang
Cc: Xiaoyu Lu
Signed-off-by: Christopher J Zurcher
---
CryptoPkg/CryptoPkg.dsc| 3 +
CryptoPkg/Include/Pcd/PcdCryptoServiceFamilyEnable.h | 10 ++
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2545
The EVP interface should be used in place of discrete digest function
calls.
Cc: Laszlo Ersek
Cc: Jiewen Yao
Cc: Jian J Wang
Cc: Xiaoyu Lu
Signed-off-by: Christopher J Zurcher
---
CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
Replies inline
> -Original Message-
> From: Yao, Jiewen
> Sent: Monday, September 14, 2020 18:22
> To: Zurcher, Christopher J ;
> devel@edk2.groups.io
> Cc: Laszlo Ersek ; Wang, Jian J ;
> Lu, XiaoyuX
> Subject: RE: [PATCH v2 0/3] CryptoPkg/BaseCryptLib: A
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2545
Cc: Laszlo Ersek
Cc: Jiewen Yao
Cc: Jian J Wang
Signed-off-by: Christopher J Zurcher
---
SecurityPkg/Hash2DxeCrypto/Driver.h | 1 -
SecurityPkg/Hash2DxeCrypto/Hash2DxeCrypto.c | 345 ++--
2 files changed, 31
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2545
V2 changes:
Added NullLib implementation
Added Crypto Service implementation
Rebased Hash2DxeCrypto to use EVP interface instead of low-level functions
Removed unnecessary casts
Added "HashAll" utility function
Merged "New" and "Init"
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2545
Cc: Laszlo Ersek
Cc: Jiewen Yao
Cc: Jian J Wang
Cc: Xiaoyu Lu
Signed-off-by: Christopher J Zurcher
---
CryptoPkg/CryptoPkg.dsc| 3 +
CryptoPkg/Include/Pcd/PcdCryptoServiceFamilyEnable.h | 10 ++
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2545
The EVP interface should be used in place of discrete digest function
calls.
Cc: Laszlo Ersek
Cc: Jiewen Yao
Cc: Jian J Wang
Cc: Xiaoyu Lu
Signed-off-by: Christopher J Zurcher
---
CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
transfer scenario.
Thanks,
Christopher Zurcher
> -Original Message-
> From: devel@edk2.groups.io On Behalf Of Zurcher,
> Christopher J
> Sent: Tuesday, August 18, 2020 15:50
> To: Yao, Jiewen ; devel@edk2.groups.io
> Cc: Wang, Jian J ; Lu, XiaoyuX ;
> Ard Biesheuvel
>
m: Yao, Jiewen
> Sent: Thursday, August 13, 2020 08:04
> To: Zurcher, Christopher J ;
> devel@edk2.groups.io
> Cc: Wang, Jian J ; Lu, XiaoyuX ;
> Ard Biesheuvel
> Subject: RE: [PATCH v2 1/2] CryptoPkg/OpensslLib: Add native instruction
> support for X64
>
> Hi Christopher
&
I replaced the MD5 and SHAx functions with EVP functions in Hash2DxeCrypto, and
it grew from ~26k to ~253k.
--
Christopher Zurcher
> -Original Message-
> From: Yao, Jiewen
> Sent: Thursday, August 13, 2020 07:38
> To: Laszlo Ersek ; devel@edk2.groups.io; Zurcher,
> Chri
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2545
The EVP interface should be used in place of discrete digest function
calls.
Cc: Jiewen Yao
Cc: Jian J Wang
Cc: Xiaoyu Lu
Signed-off-by: Christopher J Zurcher
---
CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf| 1 +
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2545
Low-level interfaces to message digest (hash) functions have been deprecated
in OpenSSL 3. In order to upgrade to OpenSSL 3, all direct calls to
low-level functions (such as SHA256_Init() in CryptSha256.c) will need to
be replaced by EVP
V2 Changes:
Limit scope of assembly config to SHA and AES functions.
Removed IA32 native support (reduced config was causing build failure and
can be added in a later patch).
Removed XMM instructions from assembly generation.
Added automatic copyright header porting for generated
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2507
Adding OpensslLibX64.inf and modifying process_files.pl to process this
file and generate the necessary assembly files.
ApiHooks.c contains a stub function for a Windows API call.
uefi-asm.conf contains the limited assembly configurations
This change has been validated on an internal development platform; I will
share the details offline.
Thanks,
Christopher Zurcher
> -Original Message-
> From: Gao, Liming
> Sent: Monday, March 30, 2020 06:51
> To: Liu, Zhiguang ; Zurcher, Christopher J
> ; devel@edk2
.
--
Christopher Zurcher
> -Original Message-
> From: Kinney, Michael D
> Sent: Thursday, March 26, 2020 11:23
> To: Yao, Jiewen ; Zurcher, Christopher J
> ; devel@edk2.groups.io; Kinney, Michael D
>
> Cc: Wang, Jian J ; Lu, XiaoyuX ;
> Ard Biesheuvel ; david.harr
V2 changes:
Add bit defines for cache control parameters from SBC-2.
Some SCSI devices have very aggressive write caching implemented, causing
data to be lost if the system is shut down or rebooted soon after
receiving a successful write confirmation from the device. By setting the
FUA bit in the
The FUA (Force Unit Access) bit forces data to be written directly to
disk instead of the write cache. This prevents data from being lost if a
shutdown or reset is requested immediately after a SCSI write operation.
Cc: Michael D Kinney
Cc: Jian J Wang
Cc: Liming Gao
Cc: Zhiguang Liu
> -Original Message-
> From: Yao, Jiewen
> Sent: Wednesday, March 25, 2020 20:05
> To: Zurcher, Christopher J ;
> devel@edk2.groups.io
> Cc: Wang, Jian J ; Lu, XiaoyuX ;
> Ard Biesheuvel ; david.harr...@hp.com; Kinney,
> Michael D
> Subject: RE: [edk2-d
half Of Yao, Jiewen
> Sent: Wednesday, March 25, 2020 18:23
> To: devel@edk2.groups.io; Yao, Jiewen ; Zurcher,
> Christopher J
> Cc: Wang, Jian J ; Lu, XiaoyuX ;
> Eugene Cohen ; Ard Biesheuvel
> Subject: Re: [edk2-devel] [PATCH 1/1] CryptoPkg/OpensslLib: Add native
> instruction
> -Original Message-
> From: devel@edk2.groups.io On Behalf Of Ard Biesheuvel
> Sent: Wednesday, March 25, 2020 11:40
> To: Zurcher, Christopher J
> Cc: edk2-devel-groups-io ; Wang, Jian J
> ; Lu, XiaoyuX ; Eugene Cohen
>
> Subject: Re: [edk2-devel] [PATCH 0/1] C
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2507
This patch adds support for building the native instruction algorithms for
IA32 and X64 versions of OpensslLib. The process_files.pl script was modified
to parse the .asm file targets from the OpenSSL build config data struct, and
generate
rom: Gao, Liming
> Sent: Friday, February 14, 2020 00:52
> To: devel@edk2.groups.io; Zurcher, Christopher J
>
> Cc: Wang, Jian J ; Lu, XiaoyuX
> Subject: RE: [edk2-devel] [PATCH v3 0/2] CryptoPkg/OpensslLib: Remove "no-
> autoalginit" flag from OpenSSL build
>
>
Some SCSI devices have very aggressive write caching implemented, causing
data to be lost if the system is shut down or rebooted soon after
receiving a successful write confirmation from the device. By setting the
FUA bit in the synchronous versions of the Write10/Write16 commands, the
write cache
The FUA (Force Unit Access) bit forces data to be written directly to
disk instead of the write cache. This prevents data from being lost if a
shutdown or reset is requested immediately after a SCSI write operation.
Cc: Michael D Kinney
Cc: Jian J Wang
Cc: Liming Gao
Signed-off-by: Christopher
This is enabling a future EVP implementation to utilize the
EVP_get_digestbyname() function.
Cc: Jian J Wang
Cc: Xiaoyu Lu
Signed-off-by: Christopher J Zurcher
---
CryptoPkg/Library/Include/openssl/opensslconf.h | 3 ---
CryptoPkg/Library/OpensslLib/process_files.pl | 1 -
2 files changed,
This prevents the .inf files from being randomized after every run
of process_files.pl.
Cc: Jian J Wang
Cc: Xiaoyu Lu
Signed-off-by: Christopher J Zurcher
---
CryptoPkg/Library/OpensslLib/OpensslLib.inf | 66 ++--
CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf | 62
In order to implement the EVP interface, the EVP_get_digestbyname function
requires the desired digest to be already initialized. Removing the
"no-autoalginit" build option will allow algorithms to be retrieved by name.
I plan to submit a future patch with an EVP implementation; the OpenSSL
> -Original Message-
> From: devel@edk2.groups.io On Behalf Of Laszlo Ersek
> Sent: Thursday, February 13, 2020 15:29
> To: devel@edk2.groups.io; Zurcher, Christopher J
>
> Subject: Re: [edk2-devel] [PATCH 1/1] CryptoPkg/OpensslLib: Remove "no-
> autoalgini
> -Original Message-
> From: Wang, Jian J
> Sent: Thursday, February 13, 2020 07:19
> To: Zurcher, Christopher J ;
> devel@edk2.groups.io
> Cc: Lu, XiaoyuX
> Subject: RE: [PATCH v2 1/1] CryptoPkg/OpensslLib: Remove "no-autoalginit"
> flag from OpenSSL bu
In order to implement the EVP interface, the EVP_get_digestbyname function
requires the desired digest to be already initialized. Removing the
"no-autoalginit" build option will allow algorithms to be retrieved by name.
Cc: Jian J Wang
Cc: Xiaoyu Lu
Christopher J Zurcher (1):
This is required for interfaces such as EVP to retrieve algorithms
by name.
This commit also adds the "sort" keyword to the header file parsing loop
so the .inf files aren't randomized after every run of process_files.pl.
Cc: Jian J Wang
Cc: Xiaoyu Lu
Signed-off-by: Christopher J Zurcher
---
This is required for interfaces such as EVP to retrieve algorithms
by name.
This commit also adds the "sort" keyword to the header file parsing loop
so the .inf files aren't randomized after every run of process_files.pl.
---
CryptoPkg/Library/OpensslLib/OpensslLib.inf | 64
In order to implement the EVP interface, the EVP_get_digestbyname function
requires the desired digest to be already initialized. Removing the
"no-autoalginit" build option will allow algorithms to be retrieved by name.
Cc: Jian J Wang
Cc: Xiaoyu Lu
Christopher J Zurcher (1):
Reviewed-by: Christopher J Zurcher
--
Christopher Zurcher
-Original Message-
From: devel@edk2.groups.io On Behalf Of Philippe
Mathieu-Daudé
Sent: Friday, December 6, 2019 03:25
To: devel@edk2.groups.io
Cc: Philippe Mathieu-Daude ; Zurcher, Christopher J
Subject: [edk2-devel] [PATCH
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1546
This patch implements the Security Protocol In and Security Protocol Out
commands in UefiScsiLib to prepare support for the Storage Security
Command Protocol.
Cc: Jiewen Yao
Cc: Jian J Wang
Cc: Liming Gao
Signed-off-by: Christopher J
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1546
Currently UfsPassThru only checks for 8 common LUNs. This adds a check
for the RPMB Well-known LUN and sets the corresponding bit-mask. Further
handling of the WLUN is already present in the driver.
Cc: Michael D Kinney
Cc: Jiewen Yao
Cc:
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1546
V8 changes:
Align Inc512 definition in UefiScsiLib.h with that in UefiScsiLib.c.
V7 changes:
Changed Inc512 behavior to always take DataLength as bytes, and divide
by 512 only in the CDB.
V6 changes:
Restore EFI_SCSI_TYPE defines for ASC
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1546
Replacing "magic numbers" in the Peripheral Type check with defines for
the reserved range from IndustryStandard/Scsi.h
Cc: Michael D Kinney
Cc: Jiewen Yao
Cc: Jian J Wang
Cc: Liming Gao
Signed-off-by: Christopher J Zurcher
---
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1546
This patch implements the EFI_STORAGE_SECURITY_COMMAND_PROTOCOL in the
ScsiDiskDxe driver.
Support is currently limited to the RPMB Well-known LUN for UFS devices.
Cc: Michael D Kinney
Cc: Jiewen Yao
Cc: Jian J Wang
Cc: Liming Gao
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1546
Replacing "magic numbers" in the Peripheral Type check with defines for
the reserved range from IndustryStandard/Scsi.h
Cc: Michael D Kinney
Cc: Jiewen Yao
Cc: Jian J Wang
Cc: Liming Gao
Signed-off-by: Christopher J Zurcher
---
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1546
This patch implements the Security Protocol In and Security Protocol Out
commands in UefiScsiLib to prepare support for the Storage Security
Command Protocol.
Cc: Jiewen Yao
Cc: Jian J Wang
Cc: Liming Gao
Signed-off-by: Christopher J
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1546
V7 changes:
Changed Inc512 behavior to always take DataLength as bytes, and divide
by 512 only in the CDB.
V6 changes:
Restore EFI_SCSI_TYPE defines for ASC IT8 devices. Revert EFI_SCSI_IO_TYPE
changes in Protocol\ScsiIo.h. Add INC_512
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1546
Currently UfsPassThru only checks for 8 common LUNs. This adds a check
for the RPMB Well-known LUN and sets the corresponding bit-mask. Further
handling of the WLUN is already present in the driver.
Cc: Michael D Kinney
Cc: Jiewen Yao
Cc:
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1546
This patch implements the EFI_STORAGE_SECURITY_COMMAND_PROTOCOL in the
ScsiDiskDxe driver.
Support is currently limited to the RPMB Well-known LUN for UFS devices.
Cc: Michael D Kinney
Cc: Jiewen Yao
Cc: Jian J Wang
Cc: Liming Gao
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1546
Replacing "magic numbers" in the Peripheral Type check with defines for
the reserved range from IndustryStandard/Scsi.h
Cc: Michael D Kinney
Cc: Jiewen Yao
Cc: Jian J Wang
Cc: Liming Gao
Signed-off-by: Christopher J Zurcher
---
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1546
V5 changes:
Split MdeModulePkg changes into separate patches. Add ReinstallProtocol
calls for StorageSecurityCommand Protocol. Restore original MediaPresent
and ReadCapacity behavior, with new implementation for WLUN type media.
Clear
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1546
Currently UfsPassThru only checks for 8 common LUNs. This adds a check
for the RPMB Well-known LUN and sets the corresponding bit-mask. Further
handling of the WLUN is already present in the driver.
Cc: Michael D Kinney
Cc: Jiewen Yao
Cc:
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1546
This patch implements the EFI_STORAGE_SECURITY_COMMAND_PROTOCOL in the
ScsiDiskDxe driver.
Support is currently limited to the RPMB Well-known LUN for UFS devices.
Cc: Michael D Kinney
Cc: Jiewen Yao
Cc: Jian J Wang
Cc: Liming Gao
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1546
V6 changes:
Restore EFI_SCSI_TYPE defines for ASC IT8 devices. Revert EFI_SCSI_IO_TYPE
changes in Protocol\ScsiIo.h. Add INC_512 parameter for SecurityProtocol
In/Out commands in UefiScsiLib. Change UINT32 args to UINTN to match the
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1546
This patch implements the Security Protocol In and Security Protocol Out
commands in UefiScsiLib to prepare support for the Storage Security
Command Protocol.
Cc: Jiewen Yao
Cc: Jian J Wang
Cc: Liming Gao
Signed-off-by: Christopher J
there is no
ambiguity on what is going to the device.
If you agree I will send the updated patchset.
Thanks,
Christopher Zurcher
-Original Message-
From: Wu, Hao A
Sent: Monday, August 26, 2019 20:03
To: devel@edk2.groups.io; Zurcher, Christopher J
Cc: Yao, Jiewen ; Wang, Jian J
Replacing "magic numbers" in the Peripheral Type check with defines for
the reserved range from IndustryStandard/Scsi.h
Cc: Michael D Kinney
Cc: Jiewen Yao
Cc: Jian J Wang
Cc: Liming Gao
Signed-off-by: Christopher J Zurcher
---
MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBus.c | 5 +++--
1 file
This patch implements the Security Protocol In and Security Protocol Out
commands in UefiScsiLib to prepare support for the Storage Security
Command Protocol.
Cc: Jiewen Yao
Cc: Jian J Wang
Cc: Liming Gao
Signed-off-by: Christopher J Zurcher
---
MdePkg/Include/IndustryStandard/Scsi.h | 48
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1546
V5 changes:
Split MdeModulePkg changes into separate patches. Add ReinstallProtocol
calls for StorageSecurityCommand Protocol. Restore original MediaPresent
and ReadCapacity behavior, with new implementation for WLUN type media.
Clear
This patch implements the EFI_STORAGE_SECURITY_COMMAND_PROTOCOL in the
ScsiDiskDxe driver.
Support is currently limited to the RPMB Well-known LUN for UFS devices.
Cc: Michael D Kinney
Cc: Jiewen Yao
Cc: Jian J Wang
Cc: Liming Gao
Signed-off-by: Christopher J Zurcher
---
Currently UfsPassThru only checks for 8 common LUNs. This adds a check
for the RPMB Well-known LUN and sets the corresponding bit-mask. Further
handling of the WLUN is already present in the driver.
Cc: Michael D Kinney
Cc: Jiewen Yao
Cc: Jian J Wang
Cc: Liming Gao
Signed-off-by: Christopher
: Wu, Hao A
Sent: Monday, June 17, 2019 19:12
To: devel@edk2.groups.io; Zurcher, Christopher J
Cc: Kinney, Michael D ; Yao, Jiewen
; Wang, Jian J ; Gao, Liming
Subject: RE: [edk2-devel] [PATCH v4 2/2] MdeModulePkg/ScsiDiskDxe: Support
Storage Security Command Protocol
> -Original Mess
-Original Message-
From: Gao, Liming
Sent: Thursday, June 13, 2019 05:59
To: Zurcher, Christopher J ;
devel@edk2.groups.io
Cc: Kinney, Michael D ; Yao, Jiewen
; Wang, Jian J
Subject: RE: [PATCH v4 0/2] Add SCSI Support for Storage Security Command
Protocol
Zurcher:
Can you share what
Zurcher, Christopher J ;
devel@edk2.groups.io
Cc: Yao, Jiewen ; Wang, Jian J
Subject: RE: [PATCH v4 1/2] MdePkg: Implement SCSI commands for Security
Protocol In/Out
> -Original Message-
> From: Zurcher, Christopher J
> Sent: Thursday, June 13, 2019 10:05 AM
> To: devel@edk2.
This patch implements the Security Protocol In and Security Protocol Out
commands in UefiScsiLib to prepare support for the Storage Security
Command Protocol.
Cc: Jiewen Yao
Cc: Jian J Wang
Cc: Liming Gao
Signed-off-by: Christopher J Zurcher
---
MdePkg/Include/IndustryStandard/Scsi.h | 48
This patch implements the EFI_STORAGE_SECURITY_COMMAND_PROTOCOL in the
ScsiDiskDxe driver.
Support is currently limited to the RPMB Well-known LUN for UFS devices.
Cc: Michael D Kinney
Cc: Jiewen Yao
Cc: Jian J Wang
Cc: Liming Gao
Signed-off-by: Christopher J Zurcher
---
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1546
V4 changes:
Add SSC Protocol in addition to BlockIo instead of in place of BlockIo.
Add error handling for (BlockSize == 0) in Read and WriteBlocks commands
to handle partitions that do not support ReadCapacity().
V3 changes:
Initialize
71 matches
Mail list logo