Mario-Kart-Felix / typescript

MIT License
0 stars 0 forks source link

Military file #60

Open Mario-Kart-Felix opened 3 years ago

Mario-Kart-Felix commented 3 years ago

Snippit_01_Code.JPG

Mario-Kart-Felix commented 3 years ago

Snippit_01_Listener_01.JPG

Mario-Kart-Felix commented 3 years ago

Manager/myapp

Files

View code

README.md

This project was bootstrapped with Create React App.

Below you will find some information on how to perform common tasks. You can find the most recent version of this guide here.

Table of Contents

Updating to New Releases

Sending Feedback

Folder Structure

Available Scripts

npm start

npm test

npm run build

npm run eject

Supported Browsers

Supported Language Features and Polyfills

Syntax Highlighting in the Editor

Displaying Lint Output in the Editor

Debugging in the Editor

Formatting Code Automatically

Changing the Page </p> <p>Installing a Dependency</p> <p>Importing a Component</p> <p>Code Splitting</p> <p>Adding a Stylesheet</p> <p>Post-Processing CSS</p> <p>Adding a CSS Preprocessor (Sass, Less etc.)</p> <p>Adding Images, Fonts, and Files</p> <p>Using the public Folder</p> <p>Changing the HTML</p> <p>Adding Assets Outside of the Module System</p> <p>When to Use the public Folder</p> <p>Using Global Variables</p> <p>Adding Bootstrap</p> <p>Using a Custom Theme</p> <p>Adding Flow</p> <p>Adding a Router</p> <p>Adding Custom Environment Variables</p> <p>Referencing Environment Variables in the HTML</p> <p>Adding Temporary Environment Variables In Your Shell</p> <p>Adding Development Environment Variables In .env</p> <p>Can I Use Decorators?</p> <p>Fetching Data with AJAX Requests</p> <p>Integrating with an API Backend</p> <p>Node</p> <p>Ruby on Rails</p> <p>Proxying API Requests in Development</p> <p>"Invalid Host Header" Errors After Configuring Proxy</p> <p>Configuring the Proxy Manually</p> <p>Configuring a WebSocket Proxy</p> <p>Using HTTPS in Development</p> <p>Generating Dynamic <meta> Tags on the Server</p> <p>Pre-Rendering into Static HTML Files</p> <p>Injecting Data from the Server into the Page</p> <p>Running Tests</p> <p>Filename Conventions</p> <p>Command Line Interface</p> <p>Version Control Integration</p> <p>Writing Tests</p> <p>Testing Components</p> <p>Using Third Party Assertion Libraries</p> <p>Initializing Test Environment</p> <p>Focusing and Excluding Tests</p> <p>Coverage Reporting</p> <p>Continuous Integration</p> <p>Disabling jsdom</p> <p>Snapshot Testing</p> <p>Editor Integration</p> <p>Debugging Tests</p> <p>Debugging Tests in Chrome</p> <p>Debugging Tests in Visual Studio Code</p> <p>Developing Components in Isolation</p> <p>Getting Started with Storybook</p> <p>Getting Started with Styleguidist</p> <p>Publishing Components to npm</p> <p>Making a Progressive Web App</p> <p>Opting Out of Caching</p> <p>Offline-First Considerations</p> <p>Progressive Web App Metadata</p> <p>Analyzing the Bundle Size</p> <p>Deployment</p> <p>Static Server</p> <p>Other Solutions</p> <p>Serving Apps with Client-Side Routing</p> <p>Building for Relative Paths</p> <p>Azure</p> <p>Firebase</p> <p>GitHub Pages</p> <p>Heroku</p> <p>Netlify</p> <p>Now</p> <p>S3 and CloudFront</p> <p>Surge</p> <p>Advanced Configuration</p> <p>Troubleshooting</p> <p>npm start doesn’t detect changes</p> <p>npm test hangs on macOS Sierra</p> <p>npm run build exits too early</p> <p>npm run build fails on Heroku</p> <p>npm run build fails to minify</p> <p>Moment.js locales are missing</p> <p>Alternatives to Ejecting</p> <p>Something Missing?</p> <p>Updating to New Releases</p> <p>Create React App is divided into two packages:</p> <p>create-react-app is a global command-line utility that you use to create new projects.</p> <p>react-scripts is a development dependency in the generated projects (including this one).</p> <p>You almost never need to update create-react-app itself: it delegates all the setup to react-scripts.</p> <p>When you run create-react-app, it always creates the project with the latest version of react-scripts so you’ll get all the new features and improvements in newly created apps automatically.</p> <p>To update an existing project to a new version of react-scripts, open the changelog, find the version you’re currently on (check package.json in this folder if you’re not sure), and apply the migration instructions for the newer versions.</p> <p>In most cases bumping the react-scripts version in package.json and running npm install in this folder should be enough, but it’s good to consult the changelog for potential breaking changes.</p> <p>We commit to keeping the breaking changes minimal so you can upgrade react-scripts painlessly.</p> <p>Sending Feedback</p> <p>We are always open to your feedback.</p> <p>Folder Structure</p> <p>After creation, your project should look like this:</p> <p>my-app/ README.md node_modules/ package.json public/ index.html favicon.ico src/ App.css App.js App.test.js index.css index.js logo.svg </p> <p>For the project to build, these files must exist with exact filenames:</p> <p>public/index.html is the page template;</p> <p>src/index.js is the JavaScript entry point.</p> <p>You can delete or rename the other files.</p> <p>You may create subdirectories inside src. For faster rebuilds, only files inside src are processed by Webpack. You need to put any JS and CSS files inside src, otherwise Webpack won’t see them.</p> <p>Only files inside public can be used from public/index.html. Read instructions below for using assets from JavaScript and HTML.</p> <p>You can, however, create more top-level directories. They will not be included in the production build so you can use them for things like documentation.</p> <p>Available Scripts</p> <p>In the project directory, you can run:</p> <p>npm start</p> <p>Runs the app in the development mode. Open <a href="http://localhost:3000">http://localhost:3000</a> to view it in the browser.</p> <p>The page will reload if you make edits. You will also see any lint errors in the console.</p> <p>npm test</p> <p>Launches the test runner in the interactive watch mode. See the section about running tests for more information.</p> <p>npm run build</p> <p>Builds the app for production to the build folder. It correctly bundles React in production mode and optimizes the build for the best performance.</p> <p>The build is minified and the filenames include the hashes. Your app is ready to be deployed!</p> <p>See the section about deployment for more information.</p> <p>npm run eject</p> <p>Note: this is a one-way operation. Once you eject, you can’t go back!</p> <p>If you aren’t satisfied with the build tool and configuration choices, you can eject at any time. This command will remove the single build dependency from your project.</p> <p>Instead, it will copy all the configuration files and the transitive dependencies (Webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except eject will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.</p> <p>You don’t have to ever use eject. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.</p> <p>Supported Browsers</p> <p>By default, the generated project uses the latest version of React.</p> <p>You can refer to the React documentation for more information about supported browsers.</p> <p>Supported Language Features and Polyfills</p> <p>This project supports a superset of the latest JavaScript standard. In addition to ES6 syntax features, it also supports:</p> <p>Exponentiation Operator (ES2016).</p> <p>Async/await (ES2017).</p> <p>Object Rest/Spread Properties (stage 3 proposal).</p> <p>Dynamic import() (stage 3 proposal)</p> <p>Class Fields and Static Properties (part of stage 3 proposal).</p> <p>JSX and Flow syntax.</p> <p>Learn more about different proposal stages.</p> <p>While we recommend using experimental proposals with some caution, Facebook heavily uses these features in the product code, so we intend to provide codemods if any of these proposals change in the future.</p> <p>Note that the project only includes a few ES6 polyfills:</p> <p>Object.assign() via object-assign.</p> <p>Promise via promise.</p> <p>fetch() via whatwg-fetch.</p> <p>If you use any other ES6+ features that need runtime support (such as Array.from() or Symbol), make sure you are including the appropriate polyfills manually, or that the browsers you are targeting already support them.</p> <p>Also note that using some newer syntax features like for...of or [...nonArrayValue] causes Babel to emit code that depends on ES6 runtime features and might not work without a polyfill. When in doubt, use Babel REPL to see what any specific syntax compiles down to.</p> <p>Syntax Highlighting in the Editor</p> <p>To configure the syntax highlighting in your favorite text editor, head to the relevant Babel documentation page and follow the instructions. Some of the most popular editors are covered.</p> </div> </div> <div class="comment"> <div class="user"> <a rel="noreferrer nofollow" target="_blank" href="https://github.com/Mario-Kart-Felix"><img src="https://avatars.githubusercontent.com/u/76971465?v=4" />Mario-Kart-Felix</a> commented <strong> 3 years ago</strong> </div> <div class="markdown-body"> <p><a href="https://en.m.wikipedia.org">https://en.m.wikipedia.org</a> › wiki Lockheed Martin F-22 Raptor - Wikipedia 2005 Raptor jet fighter/reaper6 from en.m.wikipedia.org The Lockheed Martin F-22 Raptor is an American single-seat, twin-engine, all-weather stealth tactical fighter aircraft developed exclusively for the United with os X.</p> </div> </div> <div class="comment"> <div class="user"> <a rel="noreferrer nofollow" target="_blank" href="https://github.com/Mario-Kart-Felix"><img src="https://avatars.githubusercontent.com/u/76971465?v=4" />Mario-Kart-Felix</a> commented <strong> 3 years ago</strong> </div> <div class="markdown-body"> <p>ACI - Stats - SPCA of Texas</p> <p>Data - 2017 & 2018 That's a 25.9% increase. Looking to the total number of animals removed from cruelty, from January through September of 2017, the SPCA of Texas removed 485 animals from cruelty, and from January through September of 2018, the SPCA of Texas removed 413 animals from cruelty. That's a 14.9% decrease</p> </div> </div> <div class="comment"> <div class="user"> <a rel="noreferrer nofollow" target="_blank" href="https://github.com/Mario-Kart-Felix"><img src="https://avatars.githubusercontent.com/u/76971465?v=4" />Mario-Kart-Felix</a> commented <strong> 3 years ago</strong> </div> <div class="markdown-body"> <table> <thead> <tr> <th>PDF file name and download link</th> <th>Equivalent section in IBM Documentation</th> </tr> </thead> <tbody> <tr> <td>mq92_qsg_en.pdf</td> <td>IBM MQ 9.2.0 Quick Start Guide (Long Term Support)</td> </tr> <tr> <td>mq92cdr_qsg_en.pdf</td> <td>IBM MQ 9.2.x Quick Start Guide (Continuous Delivery)</td> </tr> <tr> <td>mq92.overview.pdf</td> <td>About IBM MQTechnical overviewScenarios</td> </tr> <tr> <td>mq92.plan.pdf</td> <td>Planning for IBM MQ</td> </tr> <tr> <td>mq92.migrate.pdf</td> <td>Maintaining and migrating IBM MQ</td> </tr> <tr> <td>mq92.install.pdf</td> <td>Installing and uninstalling IBM MQ</td> </tr> <tr> <td>mq92.secure.pdf</td> <td>Securing IBM MQ</td> </tr> <tr> <td>mq92.configure.pdf</td> <td>Configuring IBM MQ</td> </tr> <tr> <td>mq92.administer.pdf</td> <td>Administering IBM MQ</td> </tr> <tr> <td>mq92.develop.pdf</td> <td>Developing applications for IBM MQ</td> </tr> <tr> <td>mq92.monitor.pdf</td> <td>Monitoring and performance for IBM MQ</td> </tr> <tr> <td>mq92.troubleshoot.pdf</td> <td>Troubleshooting and support for IBM MQ</td> </tr> <tr> <td>mq92.reference.pdf</td> <td>IBM MQ Reference</td> </tr> <tr> <td>mq92.explorer.pdf</td> <td>IBM MQ Explorer</td> </tr> <tr> <td>mq92.container.pdf</td> <td>IBM MQ in containers</td> </tr> </tbody> </table> </div> </div> <div class="comment"> <div class="user"> <a rel="noreferrer nofollow" target="_blank" href="https://github.com/Mario-Kart-Felix"><img src="https://avatars.githubusercontent.com/u/76971465?v=4" />Mario-Kart-Felix</a> commented <strong> 3 years ago</strong> </div> <div class="markdown-body"> <p>import mtoa.utils as mutils skydome = mutils.createLocator('aiSkyDomeLight</p> </div> </div> <div class="comment"> <div class="user"> <a rel="noreferrer nofollow" target="_blank" href="https://github.com/Mario-Kart-Felix"><img src="https://avatars.githubusercontent.com/u/76971465?v=4" />Mario-Kart-Felix</a> commented <strong> 3 years ago</strong> </div> <div class="markdown-body"> <p>Webpage not available The webpage at market://details?id=com.redfin.android&%24after_click_url=https%3A%2F%2Fwww.redfin.com%2FTX%2FSan-Antonio%2F5402-Mumford-Path-78228%2Fhome%2F48693812&channel=mobile-web-organic&campaign=xdp-star-banner-android&tags=xdp&tags=os%3Aandroid%7Cbrowser%3Aunknown&utm_campaign=xdp-star-banner-android&utm_source=mobile-web-organic&utm_medium=mobile-web-xdp&browserId=cu9MZ0brS4qx735j-1m4Ew&propertyId=48693812&_branch_match_id=913360010020133759&referrer=link_click_id%253D913360010020133759%2526utm_source%253Dmobile-web-organic%2526utm_campaign%253Dxdp-star-banner-android%2526utm_medium%253Dmobile-web-xdp%2526af_ref%253Dbranch_913360012260215609 could not be loaded because:</p> <p>net::ERR_UNKNOWN_URL_SCHEME</p> </div> </div> <div class="comment"> <div class="user"> <a rel="noreferrer nofollow" target="_blank" href="https://github.com/Mario-Kart-Felix"><img src="https://avatars.githubusercontent.com/u/76971465?v=4" />Mario-Kart-Felix</a> commented <strong> 3 years ago</strong> </div> <div class="markdown-body"> <h1>!/usr/bin/python</h1> <h1>SMB Spider</h1> <h1>Created by T$A</h1> <p>#</p> <h1>This program is free software: you can redistribute it and/or modify</h1> <h1>it under the terms of the GNU General Public License as published by</h1> <h1>the Free Software Foundation, either version 2 of the License, or</h1> <h1>(at your option) any later version.</h1> <p>#</p> <h1>This program is distributed in the hope that it will be useful,</h1> <h1>but WITHOUT ANY WARRANTY; without even the implied warranty of</h1> <h1>MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</h1> <h1>GNU General Public License for more details.</h1> <h1></h1> <h1>You should have received a copy of the GNU General Public License</h1> <h1>along with this program. If not, see <a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>.</h1> <p>import os import time import Queue import threading import argparse from netaddr import * from nmb.NetBIOS import NetBIOS from smb.SMBConnection import SMBConnection</p> <p>class scan_thread (threading.Thread): def <strong>init</strong>(self,ip,share,subfolder,user,pwd,domain,recursive,pattern): threading.Thread.<strong>init</strong>(self) self.ip = ip self.share = share self.subfolder = subfolder self.user = user self.pwd = pwd self.domain = domain self.recursive = recursive self.pattern = pattern</p> <p>def run(self): print "Starting thread for " + self.ip net = NetBIOS() net_name = str(net.queryIPForName(self.ip)).strip("['").strip("']") net.close() conn = SMBConnection(self.user, self.pwd, 'cobwebs', net_name, domain=self.domain, use_ntlm_v2 = False) if conn.connect(self.ip, port=139, timeout=10): print ("Connecting to %s was successful! How about a nice game of spidering %s%s?" % (self.ip, self.share, self.subfolder)) else: print ("Connection error: %s" % (self.ip)) if self.recursive > 0: recurse(conn,self.ip,self.share,self.subfolder,self.pattern,int(self.recursive))<br /> else: filelist = conn.listPath(self.share, self.subfolder) dir_list(filelist,self.ip,self.subfolder,self.pattern) conn.close() print "Exiting thread for " + self.ip</p> <p>def get_ips(iparg): ips = [] try: if os.path.isfile(iparg): f = open(iparg,'r') for line in f: line = line.rstrip() if '/' in line: for ip in IPNetwork(line).iter_hosts(): ips.append(str(ip)) else: ips.append(line) f.close() return ips if '/' in iparg: for ip in IPNetwork(iparg).iter_hosts(): ips.append(str(ip)) else: ips.append(str(IPAddress(iparg))) except: print ("Error reading file or IP Address notation: %s" % iparg) exit() return ips</p> <p>def recurse(smb_conn,ip,share,subfolder,patt,depth): try: filelist = smb_conn.listPath(share, subfolder) dir_list(filelist,ip,subfolder,patt) if depth == 0: return 0 except: print ("//%s/%s [Unable to read]" % (ip, subfolder.replace("//",""))) return 1</p> <p>for result in filelist: if result.isDirectory and result.filename != '.' and result.filename != '..': recurse(smb_conn,ip,share,subfolder+'/'+result.filename,patt,depth-1) return 0</p> <p>def dir_list(files,ip,path,pattern): for result in files: for instance in pattern: if instance in result.filename: if result.isDirectory: print ("//%s/%s/%s [dir]" % (ip,path.replace("//",""),result.filename)) else: print ("//%s/%s/%s" % (ip,path.replace("//",""),result.filename)) return 0</p> <p>start_time = time.time()</p> <p>banner = " <strong><strong><strong><strong><strong><strong><strong><strong><strong><strong>____</strong></strong></strong></strong></strong></strong></strong></strong></strong></strong>" banner += "\n |\'-.<em>( / |" banner += "\n | \ .'-.</em>\ , ,|" banner += "\n |-.\' .-; SMB Spider .'`-' |" banner += "\n | \ .' ( v1.0 beta <em>.' \ |" banner += "\n |.--.\' </em>) ;-; .<em>|" banner += "\n | ` </em>(<em>)/</em> \ <code>'-,_,-'\ |" banner += "\n |______ /(O)\ ________________/____)_</code>-._|" banner += "\n" print (banner)</p> <h1>parse the arguments</h1> <p>parser = argparse.ArgumentParser(description='SMB Spider will search shares. It is best used to search SMB shares for sensitive files, i.e., passwords.xls') parser.add_argument('-ip','--ipaddress', help='IP Address, IP/CIDR, IP Address File',required=True) parser.add_argument('-s','--share',help='SMB share to spider', required=True) parser.add_argument('-f','--subfolder',help='SMB subfolder to spider', default='/', required=False) parser.add_argument('-pa','--pattern',help='Keyword to search for, i.e., password', default='', required=False) parser.add_argument('-pf','--patternfile',help='File of keywords to search for, i.e., password', default='', required=False) parser.add_argument('-u','--user',help='SMB user to connect with', default='', required=False) parser.add_argument('-p','--pwd',help='SMB password to connect with', default='', required=False) parser.add_argument('-d','--domain',help='SMB domain to connect with', default='', required=False) parser.add_argument('-r','--recursive',help='Spider subfolders. Set value for depth.', default=0, required=False) parser.add_argument('-t','--threads',help='Number of threads', default=1, required=False) args = parser.parse_args()</p> <h1>get the list of ips</h1> <p>ips = get_ips(args.ipaddress)</p> <h1>create pattern list from supplied args</h1> <p>pattern = [] if args.patternfile != '': try: f = open(args.patternfile,'r') for line in f: line = line.rstrip() pattern.append(line) f.close() if args.pattern != '': pattern.append(args.pattern) except: print ("Error reading pattern file: %s" % args.patternfile) else: pattern.append(args.pattern)</p> <p>for ip in ips:</p> <h1>create a thread</h1> <p>thread = scan_thread(ip,args.share,args.subfolder,args.user,args.pwd,args.domain,args.recursive,pattern) thread.start()</p> <h1>make sure threads do not exceed the threshold set by the -t arg</h1> <p>while threading.activeCount() > int(args.threads): time.sleep(0.01)</p> <h1>make sure all spidering threads are dead before closing primary thread</h1> <p>while threading.activeCount() > 1: time.sleep(0.01)</p> <p>print ("Done spidering...\nCompleted in: %s" % (time.time() - start_time))</p> </div> </div> <div class="comment"> <div class="user"> <a rel="noreferrer nofollow" target="_blank" href="https://github.com/Mario-Kart-Felix"><img src="https://avatars.githubusercontent.com/u/76971465?v=4" />Mario-Kart-Felix</a> commented <strong> 3 years ago</strong> </div> <div class="markdown-body"> <p>I am responsible for maintaining two Debian servers. Every time I have to do anything with security certificates, I Google for tutorials and beat away until it finally works.</p> <p>However, in my searches I often come across different file formats (.key, .csr, .pem) but I've never been able to find a good explanation of what each file format's purpose is.</p> <p>I was wondering if the good folks here at ServerFault could provide some clarification on this matter?</p> </div> </div> <div class="comment"> <div class="user"> <a rel="noreferrer nofollow" target="_blank" href="https://github.com/Mario-Kart-Felix"><img src="https://avatars.githubusercontent.com/u/76971465?v=4" />Mario-Kart-Felix</a> commented <strong> 3 years ago</strong> </div> <div class="markdown-body"> <p>SSL has been around for long enough you'd think that there would be agreed upon container formats. And you're right, there are. Too many standards as it happens. So this is what I know, and I'm sure others will chime in.</p> <p>.csr - This is a Certificate Signing Request. Some applications can generate these for submission to certificate-authorities. The actual format is PKCS10 which is defined in RFC 2986. It includes some/all of the key details of the requested certificate such as subject, organization, state, whatnot, as well as the public key of the certificate to get signed. These get signed by the CA and a certificate is returned. The returned certificate is the public certificate (which includes the public key but not the private key), which itself can be in a couple of formats. .pem - Defined in RFCs 1421 through 1424, this is a container format that may include just the public certificate (such as with Apache installs, and CA certificate files /etc/ssl/certs), or may include an entire certificate chain including public key, private key, and root certificates. Confusingly, it may also encode a CSR (e.g. as used here) as the PKCS10 format can be translated into PEM. The name is from Privacy Enhanced Mail (PEM), a failed method for secure email but the container format it used lives on, and is a base64 translation of the x509 ASN.1 keys. .key - This is a PEM formatted file containing just the private-key of a specific certificate and is merely a conventional name and not a standardized one. In Apache installs, this frequently resides in /etc/ssl/private. The rights on these files are very important, and some programs will refuse to load these certificates if they are set wrong. .pkcs12 .pfx .p12 - Originally defined by RSA in the Public-Key Cryptography Standards (abbreviated PKCS), the "12" variant was originally enhanced by Microsoft, and later submitted as RFC 7292. This is a passworded container format that contains both public and private certificate pairs. Unlike .pem files, this container is fully encrypted. Openssl can turn this into a .pem file with both public and private keys: openssl pkcs12 -in file-to-convert.p12 -out converted-file.pem -nodes A few other formats that show up from time to time:</p> <p>.der - A way to encode ASN.1 syntax in binary, a .pem file is just a Base64 encoded .der file. OpenSSL can convert these to .pem (openssl x509 -inform der -in to-convert.der -out converted.pem). Windows sees these as Certificate files. By default, Windows will export certificates as .DER formatted files with a different extension. Like... .cert .cer .crt - A .pem (or rarely .der) formatted file with a different extension, one that is recognized by Windows Explorer as a certificate, which .pem is not. .p7b .keystore - Defined in RFC 2315 as PKCS number 7, this is a format used by Windows for certificate interchange. Java understands these natively, and often uses .keystore as an extension instead. Unlike .pem style certificates, this format has a defined way to include certification-path certificates. .crl - A certificate revocation list. Certificate Authorities produce these as a way to de-authorize certificates before expiration. You can sometimes download them from CA websites. In summary, there are four different ways to present certificates and their components:</p> <p>PEM - Governed by RFCs, its used preferentially by open-source software. It can have a variety of extensions (.pem, .key, .cer, .cert, more) PKCS7 - An open standard used by Java and supported by Windows. Does not contain private key material. PKCS12 - A Microsoft private standard that was later defined in an RFC that provides enhanced security versus the plain-text PEM format. This can contain private key material. Its used preferentially by Windows systems, and can be freely converted to PEM format through use of openssl. DER - The parent format of PEM. It's useful to think of it as a binary version of the base64-encoded PEM file. Not routinely used very much outside of Windows. I hope this helps.</p> </div> </div> <div class="comment"> <div class="user"> <a rel="noreferrer nofollow" target="_blank" href="https://github.com/Mario-Kart-Felix"><img src="https://avatars.githubusercontent.com/u/76971465?v=4" />Mario-Kart-Felix</a> commented <strong> 3 years ago</strong> </div> <div class="markdown-body"> <p>PEM on it's own isn't a certificate, it's just a way of encoding data. X.509 certificates are one type of data that is commonly encoded using PEM.</p> <p>PEM is a X.509 certificate (whose structure is defined using ASN.1), encoded using the ASN.1 DER (distinguished encoding rules), then run through Base64 encoding and stuck between plain-text anchor lines (BEGIN CERTIFICATE and END CERTIFICATE).</p> <p>You can represent the same data using the PKCS#7 or PKCS#12 representations, and the openssl command line utility can be used to do this.</p> <p>The obvious benefits of PEM is that it's safe to paste into the body of an email message because it has anchor lines and is 7-bit clean.</p> <p>RFC1422 has more details about the PEM standard as it related to keys and certificates</p> </div> </div> <div class="page-bar-simple"> </div> <div class="footer"> <ul class="body"> <li>© <script> document.write(new Date().getFullYear()) </script> Githubissues.</li> <li>Githubissues is a development platform for aggregating issues.</li> </ul> </div> <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.min.js"></script> <script src="/githubissues/assets/js.js"></script> <script src="/githubissues/assets/markdown.js"></script> <script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.4.0/build/highlight.min.js"></script> <script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.4.0/build/languages/go.min.js"></script> <script> hljs.highlightAll(); </script> </body> </html>