相馬です。
一発言ごとに勉強不足が剥かれていくのはこわいですが
楽しくもありますね。

On 2007/03/01, at 10:22, Takahiro Kambe wrote:
> RFC2045の 6.8. Base64 Content-Transfer-Encoding の Table 1 に続く
> パラグラフに、
>
>    The encoded output stream must be represented in lines of no more
>    than 76 characters each.  All line breaks or other characters not
>
> という記述があります。base64を名乗る以上は行長に制限は存在する、と解釈
> できます。

  これは見落としていましたm(_ _)m

そこで手をつけた以上はと思い、調べてみると今は base16/32/64
専用の rfcがあって、 
 http://tools.ietf.org/html/rfc4648
( http://www5d.biglobe.ne.jp/~stssk/rfc/rfc4648.html )
 The Base16, Base32, and Base64 Data Encodings
となっているようです。

# あわせてもう MIMEではなく base64のことなので
# Subjectかえました。

  これを読んでみると、どうも今の規格としては base16/32/64
では長さ制限はないようですね。これらを使う envelopesが
制限する場合にはそっちに従うこと、という感じのようです。
 なので、opensslがハジくのはそれはそれで問題がなく、
Rubyの先日パッチしました実装での長さ無制限も、問題は
ないようです。

 逆に、
>    Implementations MUST NOT add line feeds to base-encoded data unless
>    the specification referring to this document explicitly directs base
>    encoders to add line feeds after a specific number of characters.
  とありますので、単純に pack()を base64ライブラリとして考えると、
改行はマズいようです。

# packの 'm'とは別に base16/32/64つくったほうが
# いいのかな?

----
SOUMA Yutaka (H.Holon) [ holon / radastery.jp | http://radastery.jp/ ]