You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

288 lines
8.2 KiB

8 years ago
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1">
  6. <meta name="theme-color" content="#375EAB">
  7. <title>pem - The Go Programming Language</title>
  8. <link type="text/css" rel="stylesheet" href="../../../lib/godoc/style.css">
  9. <link rel="stylesheet" href="../../../lib/godoc/jquery.treeview.css">
  10. <script type="text/javascript">window.initFuncs = [];</script>
  11. </head>
  12. <body>
  13. <div id='lowframe' style="position: fixed; bottom: 0; left: 0; height: 0; width: 100%; border-top: thin solid grey; background-color: white; overflow: auto;">
  14. ...
  15. </div><!-- #lowframe -->
  16. <div id="topbar" class="wide"><div class="container">
  17. <div class="top-heading" id="heading-wide"><a href="http://localhost:6060/">The Go Programming Language</a></div>
  18. <div class="top-heading" id="heading-narrow"><a href="http://localhost:6060/">Go</a></div>
  19. <a href="index.html#" id="menu-button"><span id="menu-button-arrow">&#9661;</span></a>
  20. <form method="GET" action="http://localhost:6060/search">
  21. <div id="menu">
  22. <a href="http://localhost:6060/doc/">Documents</a>
  23. <a href="http://localhost:6060/pkg/">Packages</a>
  24. <a href="http://localhost:6060/project/">The Project</a>
  25. <a href="http://localhost:6060/help/">Help</a>
  26. <a href="http://localhost:6060/blog/">Blog</a>
  27. <input type="text" id="search" name="q" class="inactive" value="Search" placeholder="Search">
  28. </div>
  29. </form>
  30. </div></div>
  31. <div id="page" class="wide">
  32. <div class="container">
  33. <h1>Package pem</h1>
  34. <div id="nav"></div>
  35. <!--
  36. Copyright 2009 The Go Authors. All rights reserved.
  37. Use of this source code is governed by a BSD-style
  38. license that can be found in the LICENSE file.
  39. -->
  40. <!--
  41. Note: Static (i.e., not template-generated) href and id
  42. attributes start with "pkg-" to make it impossible for
  43. them to conflict with generated attributes (some of which
  44. correspond to Go identifiers).
  45. -->
  46. <script type='text/javascript'>
  47. document.ANALYSIS_DATA = null;
  48. document.CALLGRAPH = null;
  49. </script>
  50. <div id="short-nav">
  51. <dl>
  52. <dd><code>import "encoding/pem"</code></dd>
  53. </dl>
  54. <dl>
  55. <dd><a href="index.html#pkg-overview" class="overviewLink">Overview</a></dd>
  56. <dd><a href="index.html#pkg-index" class="indexLink">Index</a></dd>
  57. </dl>
  58. </div>
  59. <!-- The package's Name is printed as title by the top-level template -->
  60. <div id="pkg-overview" class="toggleVisible">
  61. <div class="collapsed">
  62. <h2 class="toggleButton" title="Click to show Overview section">Overview ▹</h2>
  63. </div>
  64. <div class="expanded">
  65. <h2 class="toggleButton" title="Click to hide Overview section">Overview ▾</h2>
  66. <p>
  67. Package pem implements the PEM data encoding, which originated in Privacy
  68. Enhanced Mail. The most common use of PEM encoding today is in TLS keys and
  69. certificates. See RFC 1421.
  70. </p>
  71. </div>
  72. </div>
  73. <div id="pkg-index" class="toggleVisible">
  74. <div class="collapsed">
  75. <h2 class="toggleButton" title="Click to show Index section">Index ▹</h2>
  76. </div>
  77. <div class="expanded">
  78. <h2 class="toggleButton" title="Click to hide Index section">Index ▾</h2>
  79. <!-- Table of contents for API; must be named manual-nav to turn off auto nav. -->
  80. <div id="manual-nav">
  81. <dl>
  82. <dd><a href="index.html#Encode">func Encode(out io.Writer, b *Block) error</a></dd>
  83. <dd><a href="index.html#EncodeToMemory">func EncodeToMemory(b *Block) []byte</a></dd>
  84. <dd><a href="index.html#Block">type Block</a></dd>
  85. <dd>&nbsp; &nbsp; <a href="index.html#Decode">func Decode(data []byte) (p *Block, rest []byte)</a></dd>
  86. </dl>
  87. </div><!-- #manual-nav -->
  88. <h4>Package files</h4>
  89. <p>
  90. <span style="font-size:90%">
  91. <a href="http://localhost:6060/src/encoding/pem/pem.go">pem.go</a>
  92. </span>
  93. </p>
  94. </div><!-- .expanded -->
  95. </div><!-- #pkg-index -->
  96. <div id="pkg-callgraph" class="toggle" style="display: none">
  97. <div class="collapsed">
  98. <h2 class="toggleButton" title="Click to show Internal Call Graph section">Internal call graph ▹</h2>
  99. </div> <!-- .expanded -->
  100. <div class="expanded">
  101. <h2 class="toggleButton" title="Click to hide Internal Call Graph section">Internal call graph ▾</h2>
  102. <p>
  103. In the call graph viewer below, each node
  104. is a function belonging to this package
  105. and its children are the functions it
  106. calls&mdash;perhaps dynamically.
  107. </p>
  108. <p>
  109. The root nodes are the entry points of the
  110. package: functions that may be called from
  111. outside the package.
  112. There may be non-exported or anonymous
  113. functions among them if they are called
  114. dynamically from another package.
  115. </p>
  116. <p>
  117. Click a node to visit that function's source code.
  118. From there you can visit its callers by
  119. clicking its declaring <code>func</code>
  120. token.
  121. </p>
  122. <p>
  123. Functions may be omitted if they were
  124. determined to be unreachable in the
  125. particular programs or tests that were
  126. analyzed.
  127. </p>
  128. <!-- Zero means show all package entry points. -->
  129. <ul style="margin-left: 0.5in" id="callgraph-0" class="treeview"></ul>
  130. </div>
  131. </div> <!-- #pkg-callgraph -->
  132. <h2 id="Encode">func <a href="http://localhost:6060/src/encoding/pem/pem.go?s=5906:5948#L222">Encode</a></h2>
  133. <pre>func Encode(out <a href="../../io/index.html">io</a>.<a href="../../io/index.html#Writer">Writer</a>, b *<a href="index.html#Block">Block</a>) <a href="../../builtin/index.html#error">error</a></pre>
  134. <h2 id="EncodeToMemory">func <a href="http://localhost:6060/src/encoding/pem/pem.go?s=7241:7277#L280">EncodeToMemory</a></h2>
  135. <pre>func EncodeToMemory(b *<a href="index.html#Block">Block</a>) []<a href="../../builtin/index.html#byte">byte</a></pre>
  136. <h2 id="Block">type <a href="http://localhost:6060/src/encoding/pem/pem.go?s=669:934#L17">Block</a></h2>
  137. <pre>type Block struct {
  138. Type <a href="../../builtin/index.html#string">string</a> <span class="comment">// The type, taken from the preamble (i.e. &#34;RSA PRIVATE KEY&#34;).</span>
  139. Headers map[<a href="../../builtin/index.html#string">string</a>]<a href="../../builtin/index.html#string">string</a> <span class="comment">// Optional headers.</span>
  140. Bytes []<a href="../../builtin/index.html#byte">byte</a> <span class="comment">// The decoded bytes of the contents. Typically a DER encoded ASN.1 structure.</span>
  141. }</pre>
  142. <p>
  143. A Block represents a PEM encoded structure.
  144. </p>
  145. <p>
  146. The encoded form is:
  147. </p>
  148. <pre>-----BEGIN Type-----
  149. Headers
  150. base64-encoded Bytes
  151. -----END Type-----
  152. </pre>
  153. <p>
  154. where Headers is a possibly empty sequence of Key: Value lines.
  155. </p>
  156. <h3 id="Decode">func <a href="http://localhost:6060/src/encoding/pem/pem.go?s=2203:2251#L68">Decode</a></h3>
  157. <pre>func Decode(data []<a href="../../builtin/index.html#byte">byte</a>) (p *<a href="index.html#Block">Block</a>, rest []<a href="../../builtin/index.html#byte">byte</a>)</pre>
  158. <p>
  159. Decode will find the next PEM formatted block (certificate, private key
  160. etc) in the input. It returns that block and the remainder of the input. If
  161. no PEM data is found, p is nil and the whole of the input is returned in
  162. rest.
  163. </p>
  164. <div id="footer">
  165. Build version go1.6.<br>
  166. Except as <a href="https://developers.google.com/site-policies#restrictions">noted</a>,
  167. the content of this page is licensed under the
  168. Creative Commons Attribution 3.0 License,
  169. and code is licensed under a <a href="http://localhost:6060/LICENSE">BSD license</a>.<br>
  170. <a href="http://localhost:6060/doc/tos.html">Terms of Service</a> |
  171. <a href="http://www.google.com/intl/en/policies/privacy/">Privacy Policy</a>
  172. </div>
  173. </div><!-- .container -->
  174. </div><!-- #page -->
  175. <!-- TODO(adonovan): load these from <head> using "defer" attribute? -->
  176. <script type="text/javascript" src="../../../lib/godoc/jquery.js"></script>
  177. <script type="text/javascript" src="../../../lib/godoc/jquery.treeview.js"></script>
  178. <script type="text/javascript" src="../../../lib/godoc/jquery.treeview.edit.js"></script>
  179. <script type="text/javascript" src="../../../lib/godoc/godocs.js"></script>
  180. </body>
  181. </html>