From c9b8755e8c4ebcffa008c5448bbc69e201f3ce09 Mon Sep 17 00:00:00 2001 From: purplerain Date: Mon, 8 Apr 2024 00:43:36 +0000 Subject: [PATCH] sync with OpenBSD -current --- lib/libcrypto/cms/cms_sd.c | 67 ++++++++++++++++++++++++-------------- sys/dev/pci/dwiic_pci.c | 4 ++- sys/dev/pci/pcidevs | 4 ++- sys/dev/pci/pcidevs.h | 4 ++- sys/dev/pci/pcidevs_data.h | 10 +++++- 5 files changed, 61 insertions(+), 28 deletions(-) diff --git a/lib/libcrypto/cms/cms_sd.c b/lib/libcrypto/cms/cms_sd.c index 5a38bf59a..b78394191 100644 --- a/lib/libcrypto/cms/cms_sd.c +++ b/lib/libcrypto/cms/cms_sd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cms_sd.c,v 1.31 2024/03/29 06:41:58 tb Exp $ */ +/* $OpenBSD: cms_sd.c,v 1.32 2024/04/07 06:34:42 tb Exp $ */ /* * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL * project. @@ -1008,36 +1008,55 @@ CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs) } LCRYPTO_ALIAS(CMS_add_smimecap); +/* + * Add AlgorithmIdentifier OID of type |nid| to the SMIMECapability attribute + * set |*out_algs| (see RFC 3851, section 2.5.2). If keysize > 0, the OID has + * an integer parameter of value |keysize|, otherwise parameters are omitted. + */ int -CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, int algnid, int keysize) +CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **out_algs, int nid, int keysize) { - X509_ALGOR *alg; - ASN1_INTEGER *key = NULL; + STACK_OF(X509_ALGOR) *algs; + X509_ALGOR *alg = NULL; + ASN1_INTEGER *parameter = NULL; + int parameter_type = V_ASN1_UNDEF; + int ret = 0; + + if ((algs = *out_algs) == NULL) + algs = sk_X509_ALGOR_new_null(); + if (algs == NULL) + goto err; if (keysize > 0) { - if ((key = ASN1_INTEGER_new()) == NULL) - return 0; - if (!ASN1_INTEGER_set(key, keysize)) { - ASN1_INTEGER_free(key); - return 0; - } - } - alg = X509_ALGOR_new(); - if (alg == NULL) { - ASN1_INTEGER_free(key); - return 0; + if ((parameter = ASN1_INTEGER_new()) == NULL) + goto err; + if (!ASN1_INTEGER_set(parameter, keysize)) + goto err; + parameter_type = V_ASN1_INTEGER; } - X509_ALGOR_set0(alg, OBJ_nid2obj(algnid), - key ? V_ASN1_INTEGER : V_ASN1_UNDEF, key); - if (*algs == NULL) - *algs = sk_X509_ALGOR_new_null(); - if (*algs == NULL || !sk_X509_ALGOR_push(*algs, alg)) { - X509_ALGOR_free(alg); - return 0; - } + if ((alg = X509_ALGOR_new()) == NULL) + goto err; + if (!X509_ALGOR_set0_by_nid(alg, nid, parameter_type, parameter)) + goto err; + parameter = NULL; - return 1; + if (sk_X509_ALGOR_push(algs, alg) <= 0) + goto err; + alg = NULL; + + *out_algs = algs; + algs = NULL; + + ret = 1; + + err: + if (algs != *out_algs) + sk_X509_ALGOR_pop_free(algs, X509_ALGOR_free); + X509_ALGOR_free(alg); + ASN1_INTEGER_free(parameter); + + return ret; } LCRYPTO_ALIAS(CMS_add_simple_smimecap); diff --git a/sys/dev/pci/dwiic_pci.c b/sys/dev/pci/dwiic_pci.c index 3d0a00adb..76a39b60c 100644 --- a/sys/dev/pci/dwiic_pci.c +++ b/sys/dev/pci/dwiic_pci.c @@ -1,4 +1,4 @@ -/* $OpenBSD: dwiic_pci.c,v 1.25 2024/03/06 00:11:25 jsg Exp $ */ +/* $OpenBSD: dwiic_pci.c,v 1.26 2024/04/07 01:04:58 jsg Exp $ */ /* * Synopsys DesignWare I2C controller * PCI attachment @@ -172,6 +172,8 @@ const struct pci_matchid dwiic_pci_ids[] = { { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_I2C_3 }, { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_I2C_4 }, { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_I2C_5 }, + { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_I2C_6 }, + { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_I2C_7 }, { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_MTL_I2C_0 }, { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_MTL_I2C_1 }, { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_MTL_I2C_2 }, diff --git a/sys/dev/pci/pcidevs b/sys/dev/pci/pcidevs index 33c2a6c4d..e9bea417a 100644 --- a/sys/dev/pci/pcidevs +++ b/sys/dev/pci/pcidevs @@ -1,4 +1,4 @@ -$OpenBSD: pcidevs,v 1.2071 2024/04/06 08:39:51 jsg Exp $ +$OpenBSD: pcidevs,v 1.2072 2024/04/07 00:58:57 jsg Exp $ /* $NetBSD: pcidevs,v 1.30 1997/06/24 06:20:24 thorpej Exp $ */ /* @@ -6008,6 +6008,8 @@ product INTEL ADL_N_HDA 0x54c8 ADL-N HD Audio product INTEL ADL_N_THC_0 0x54d0 ADL-N THC product INTEL ADL_N_THC_1 0x54d1 ADL-N THC product INTEL ADL_N_AHCI 0x54d3 ADL-N AHCI +product INTEL ADL_N_I2C_6 0x54d8 ADL-N I2C +product INTEL ADL_N_I2C_7 0x54d9 ADL-N I2C product INTEL ADL_N_UART_3 0x54da ADL-N UART product INTEL ADL_N_HECI_1 0x54e0 ADL-N HECI product INTEL ADL_N_HECI_2 0x54e1 ADL-N HECI diff --git a/sys/dev/pci/pcidevs.h b/sys/dev/pci/pcidevs.h index a95903883..3f514212d 100644 --- a/sys/dev/pci/pcidevs.h +++ b/sys/dev/pci/pcidevs.h @@ -2,7 +2,7 @@ * THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * OpenBSD: pcidevs,v 1.2071 2024/04/06 08:39:51 jsg Exp + * OpenBSD: pcidevs,v 1.2072 2024/04/07 00:58:57 jsg Exp */ /* $NetBSD: pcidevs,v 1.30 1997/06/24 06:20:24 thorpej Exp $ */ @@ -6013,6 +6013,8 @@ #define PCI_PRODUCT_INTEL_ADL_N_THC_0 0x54d0 /* ADL-N THC */ #define PCI_PRODUCT_INTEL_ADL_N_THC_1 0x54d1 /* ADL-N THC */ #define PCI_PRODUCT_INTEL_ADL_N_AHCI 0x54d3 /* ADL-N AHCI */ +#define PCI_PRODUCT_INTEL_ADL_N_I2C_6 0x54d8 /* ADL-N I2C */ +#define PCI_PRODUCT_INTEL_ADL_N_I2C_7 0x54d9 /* ADL-N I2C */ #define PCI_PRODUCT_INTEL_ADL_N_UART_3 0x54da /* ADL-N UART */ #define PCI_PRODUCT_INTEL_ADL_N_HECI_1 0x54e0 /* ADL-N HECI */ #define PCI_PRODUCT_INTEL_ADL_N_HECI_2 0x54e1 /* ADL-N HECI */ diff --git a/sys/dev/pci/pcidevs_data.h b/sys/dev/pci/pcidevs_data.h index 88406c7f6..b6c4cec83 100644 --- a/sys/dev/pci/pcidevs_data.h +++ b/sys/dev/pci/pcidevs_data.h @@ -2,7 +2,7 @@ * THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * OpenBSD: pcidevs,v 1.2071 2024/04/06 08:39:51 jsg Exp + * OpenBSD: pcidevs,v 1.2072 2024/04/07 00:58:57 jsg Exp */ /* $NetBSD: pcidevs,v 1.30 1997/06/24 06:20:24 thorpej Exp $ */ @@ -21383,6 +21383,14 @@ static const struct pci_known_product pci_known_products[] = { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_AHCI, "ADL-N AHCI", }, + { + PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_I2C_6, + "ADL-N I2C", + }, + { + PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_I2C_7, + "ADL-N I2C", + }, { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ADL_N_UART_3, "ADL-N UART",