[go] PEM 패키지 사용법

PEM 파일 읽기

ioutil.ReadFile 함수를 사용하여 PEM 파일을 읽고, pem.Decode 함수로 PEM 데이터를 디코딩할 수 있습니다. 다음은 이러한 작업을 하는 간단한 예제 코드입니다.

package main

import (
	"encoding/pem"
	"fmt"
	"io/ioutil"
)

func main() {
	// PEM 파일 읽기
	pemData, err := ioutil.ReadFile("example.pem")
	if err != nil {
		fmt.Println("파일 읽기 오류:", err)
		return
	}

	// PEM 디코딩
	block, _ := pem.Decode(pemData)
	if block == nil {
		fmt.Println("PEM 데이터를 디코딩할 수 없습니다.")
		return
	}
	fmt.Printf("디코딩된 타입: %s\n", block.Type)
	fmt.Printf("디코딩된 데이터: %s\n", string(block.Bytes))
}

PEM 파일 쓰기

pem.Encode 함수를 사용하여 PEM 데이터를 인코딩하고 파일에 쓸 수 있습니다. 다음은 이를 수행하는 예제 코드입니다.

package main

import (
	"crypto/x509"
	"encoding/pem"
	"fmt"
	"os"
)

func main() {
	// 인코딩할 데이터
	data := []byte("example data")

	// PEM 인코딩
	block := &pem.Block{
		Type:  "EXAMPLE",
		Bytes: data,
	}
	pemFile, err := os.Create("example.pem")
	if err != nil {
		fmt.Println("파일 생성 오류:", err)
		return
	}
	defer pemFile.Close()
	err = pem.Encode(pemFile, block)
	if err != nil {
		fmt.Println("PEM 데이터를 인코딩할 수 없습니다:", err)
		return
	}
	fmt.Println("PEM 파일이 성공적으로 생성되었습니다.")
}

이러한 예제 코드를 통해 Go 언어에서 PEM 파일을 다루는 기본적인 방법을 익힐 수 있습니다. 더 많은 세부 정보는 공식 문서를 참고하세요.