pkcs12plus

package module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 28, 2025 License: MIT Imports: 10 Imported by: 0

README

go-pkcs12-plus

Librería Go universal para cargar certificados PKCS#12 con soporte extendido para formatos legacy y algoritmos de encriptación diversos.

Características

  • ✅ Soporte para múltiples algoritmos de encriptación (RC2, 3DES, AES)
  • ✅ Compatible con certificados de cualquier entidad certificadora
  • ✅ Fallback automático con OpenSSL para certificados legacy
  • ✅ Soporte para archivos PEM
  • ✅ Conversión automática BER → DER
  • ✅ Sin dependencias externas en modo puro Go
  • ✅ CGO opcional para máxima compatibilidad

Instalación

go get github.com/diegofxm/go-pkcs12-plus

Uso Básico

package main

import (
    "log"
    
    "github.com/diegofxm/go-pkcs12-plus"
)

func main() {
    // Cargar certificado P12
    cert, key, err := pkcs12plus.Load("certificado.p12", "password")
    if err != nil {
        log.Fatal(err)
    }
    
    // Usar certificado y clave privada
    // ...
}

Métodos de Carga

La librería intenta múltiples métodos automáticamente:

  1. go-pkcs12 estándar (rápido, sin dependencias)
  2. go-pkcs12 DecodeChain (soporta cadenas de certificados)
  3. go-pkcs12 ToPEM (compatible con más formatos)
  4. Conversión BER → DER (para certificados legacy)
  5. OpenSSL via CGO (máxima compatibilidad, requiere CGO)

Compilación

Sin CGO (Go puro)
go build
Con CGO (soporte OpenSSL)
CGO_ENABLED=1 go build

Requisitos

  • Go 1.21+
  • OpenSSL (solo si se compila con CGO)

Certificados Soportados

  • ✅ CAMERFIRMA (Colombia)
  • ✅ GSE (Colombia)
  • ✅ Certicámara (Colombia)
  • ✅ Certificados OpenSSL legacy
  • ✅ Certificados Java keystore
  • ✅ Cualquier certificado PKCS#12 estándar

Casos de Uso

Facturación Electrónica

Ideal para sistemas de facturación electrónica que necesitan soportar certificados de múltiples proveedores.

Firma Digital

Perfecto para aplicaciones que requieren firma digital con certificados de diversas entidades certificadoras.

Licencia

MIT

Contribuciones

Las contribuciones son bienvenidas. Por favor abre un issue o PR.

Autor

Diego Fernando Montoya - @diegofxm

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Load

func Load(path, password string) (*x509.Certificate, *rsa.PrivateKey, error)

Load carga un certificado P12 con soporte universal Intenta múltiples métodos en orden de preferencia

func LoadFromBytes

func LoadFromBytes(data []byte, password string) (*x509.Certificate, *rsa.PrivateKey, error)

LoadFromBytes carga un certificado desde bytes P12

func LoadFromPEM

func LoadFromPEM(certPath string) (*x509.Certificate, *rsa.PrivateKey, error)

LoadFromPEM carga certificado y clave desde archivos PEM

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL