-
Notifications
You must be signed in to change notification settings - Fork 4
/
80.txt
82 lines (60 loc) · 3.57 KB
/
80.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
[6] [DFN[[[[CODE[.pem]]]]]] は、[[証明書]]や[[秘密鍵]]など[[暗号化]]に関わる[[ファイル]]の交換・保存用のデータ形式です。
* 仕様書
[7] [CODE[[[.pem]]]] ファイル形式を規定した[[仕様書]]はなさそうです。
[8] [[PEM]] は[[電子メール]]における[[暗号化]]の仕様を指すとされていますが、
[[PEM]] に (少なくても [[RFC]] として出版されたものには)
本ファイル形式の規定はなく、なぜ [CODE[[[.pem]]]] ファイルと呼ばれているかは定かではありません。
[9] [[PEM]] の実装が使っていたファイル形式なのかもしれません。あるいは [[PEM]]
の記憶が濃い時代に [[PEM]] 風のファイル形式として名付けられたのかもしれません。
(現在でいう) [[Base64]] のことを [[PEM]] と呼んでいたのかもしれません。
;; [10] [[MIME]] の一機能に過ぎない [[Base64]] のことを「[[MIME]]」と呼ぶ風習がかつて一部にありました。
[[MIME]] より前の時代に (まだ名前がなかった) [[Base64]] のことを「[[PEM]]」
と呼んでいても不思議ではありません。
* 構文
[11] [CODE[[[.pem]]]] 形式のファイルは、 [[ASCII]] 文字列で構成される[[テキストファイル]]です。
;; [12] [[非ASCII文字]]が含まれる場合にどう解釈されるかは定かではありません。
[13] [CODE[[[.pem]]]] 形式のファイルは、1つ以上の[[メッセージ]]で構成されます。
[FIG(railroad)[
= +
== [[メッセージ]]
]FIG]
;; [14] 多くの場合は[[メッセージ]]は1つだけですが、 [[certification path]]
を表す一連の[[証明書]]を表す場合や[[ルート証明書]]として使われる[[証明書]]群を表す場合、
[[秘密鍵]]と[[証明書]]を含めた場合など、複数の[[メッセージ]]が含まれることがあります。
[15] [[メッセージ]]は、 [[pre-EB]]、データ、 [[post-EB]] で構成されます。
[FIG(railroad)[
= [[pre-EB]]
= データ
= [[post-EB]]
]FIG]
* メモ
[1] [CITE[証明書のファイル形式について]]
([TIME[2009-05-14 20:39:44 +09:00]])
<http://moca.wide.ad.jp/moca_guide/about_fileformat.html>
[2] [CITE@ja[.PEM SSL サーバ証明書とは。]]
([TIME[2014-10-24 16:51:29 +09:00]] 版)
<http://www.digicert.ne.jp/howto/basis/pem-ssl-creation.html>
[3] [CITE@ja[SSL/TLS/PKI メモ]]
([[Masatoshi Sato]] 著, [TIME[2011-07-08 01:12:34 +09:00]] 版)
<http://siisise.net/linux/ssl.html>
[FIG(quote)[
[FIGCAPTION[
[4] [CITE@en[RFC 5958 - Asymmetric Key Packages]]
([TIME[2015-04-05 22:36:35 +09:00]] 版)
<https://tools.ietf.org/html/rfc5958#section-5>
]FIGCAPTION]
> .p8 files are sometimes PEM-encoded. When .p8 files are PEM encoded
> they use the .pem file extension. PEM encoding is either the Base64
> encoding, from Section 4 of '''['''RFC4648''']''', of the DER-encoded
> EncryptedPrivateKeyInfo sandwiched between:
> -----BEGIN ENCRYPTED PRIVATE KEY-----
> -----END ENCRYPTED PRIVATE KEY-----
> or the Base64 encoding, see Section 4 of '''['''RFC4648''']''', of the DER-
> encoded PrivateKeyInfo sandwiched between:
> -----BEGIN PRIVATE KEY-----
> -----END PRIVATE KEY-----
>
]FIG]
[5] [CITE[java - what is the differences between "BEGIN RSA PRIVATE KEY" and "BEGIN PRIVATE KEY" - Stack Overflow]]
([TIME[2015-04-08 01:00:10 +09:00]] 版)
<http://stackoverflow.com/questions/20065304/what-is-the-differences-between-begin-rsa-private-key-and-begin-private-key>