Find Jobs
Hire Freelancers

RESTful API converting X509 blobs to JSON representations - written in GO

$250-750 USD

In Progress
Posted over 11 years ago

$250-750 USD

Paid on delivery
So Google go appears to have fairly robust support for x509 certificate related objects, I want a series of APIs that one can POST these objects to and get corresponding JSON representations of those objects. Certificate, Certificates, CRL, OCSP - [login to view URL] For example I imagine URIs of: /x509certificate?decode=true /x509certificates?decode=true /x509crl?decode=true /x509ocsp?decode=true /x509csr?decode=true That would return JSON, for example something like: { "x509": { "version": "3", "serialNumber": "2", "signatureAlgorithm": "sha512WithRSAEncryption", "issuer": "C=US, O=Manufacturing Business, CN=Customer CA", "validity": { "notBefore": "Aug 20 05:28:18 2012 GMT", "notAfter": "Oct 4 05:28:18 2012 GMT" }, "subject": "C=US, O=Manufacturing Business, CN=www.example.com", "subjectPublicKeyInfo": { "publicKeyAlgorithm": "rsaEncryption", "publicKeyBits": "4096", "publicKey": "00:da:", "exponent": "65537" }, "extensions": { "keyUsage": { "digitalSignature": "True", "nonRepudiation": "False", "keyEncipherment": "True", "dataEncipherment": " False", "keyAgreement": " False", "keyCertSign": " False", "cRLSign": " False", "encipherOnly": " False", "decipherOnly": " False" }, "extendedKeyUsage": "TLS Web Server Authentication", "basicConstraints": { "CA": "False", "pathLength": "0" }, "subjectKeyIdentifier": "2D:FB:A2:1D:30:42:6C:0C:16:5D:A0:8B:80:0A:8E:83:50:DC:27:E3", "authorityKeyIdentifier": "keyid:58:52:0A:AE:78:FE:56:48:5A:4A:C9:D4:5D:E8:9A:5C:48:84:09:35", "subjectAlternativeNames": { "DNS": "www.test.example.com" }, "authorityInformationAccess": { "ocsp": "http: //ocsp.examplepartnerca.com/", "caIssuer": "http: //repository.examplepartnerca.com/partnerca.cer" } }, "signature": "30:81:", "raw": "MIIGoj" } } There are no standards for the JSON representations you will define them based on the corresponding ASN.1, if GO doesn't export the data element then you don't have to include it. It looks like go doesn't support CSR's so you will need to do that one using the ASN.1 parser in go but its a super simple structure: { "pkcs10": { "version": "0", "subject": "C=US, O=Manufacturing Business, CN=www.example.com", "subjectPublicKeyInfo": { "publicKeyAlgorithm": "id-ecPublicKey", "publicKeyBits": "ECC 512-bit", "publicKey": "04:00:", "ASN1Oid": "secp521r1" }, "Attributes": "a0:00", "signatureAlgorithm": "ecdsa-with-SHA1", "raw": "MIIBi" } } The code needs to be stable, the JSON valid, there needs to be a simple 1,2,3 document stepping through starting the server and another with a series of curl commands showing the use of interfaces.
Project ID: 2455476

About the project

2 proposals
Remote project
Active 12 yrs ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
Awarded to:
User Avatar
This is a very straightforward job, and Go is definitely the right language for it. I can deliver a fully documented and tested program to serve the JSON-- either stand-alone, or sitting behind a server using fastcgi.
$300 USD in 5 days
5.0 (1 review)
4.1
4.1
2 freelancers are bidding on average $400 USD for this job
User Avatar
I have been working with Go for two projects, perhaps we can talk more details with PMB.
$500 USD in 7 days
5.0 (4 reviews)
4.0
4.0

About the client

Flag of UNITED STATES
Woodinville, United States
5.0
14
Payment method verified
Member since Sep 3, 2012

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.