Scheduled maintenance on Saturday, 27 September 2025, from 07:00 AM to 4:00 PM GMT (09:00 AM to 6:00 PM CEST) - some services may be unavailable -

Skip to content
Snippets Groups Projects
Select Git revision
  • b2109faa1b2e5726c1de26c453f8976a48118f77
  • develop default protected
  • gl-pages
  • OCF-Doc25-create-developer-documentation
  • set-sast-iac-config-1
  • main protected
  • v3.0.0-release
  • v2.0.0-release
  • v1.0.0-release
  • 0.0
10 results

script.js

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    script.js 6.52 KiB
    // Change this variable if another host is used for CAPIF
    const CAPIF_HOSTNAME = 'capifcore';
    
    const express = require('express'),
      app = express(),
      fs = require('fs'),
      shell = require('shelljs'),
    
    
      folderPath = './Responses/',
      bodyParser = require('body-parser'),
      path = require('path');
    
    const { exec } = require('child_process');
    
    // Create the folder path in case it doesn't exist
    shell.mkdir('-p', folderPath);
    
     // Change the limits according to your response size
    app.use(bodyParser.json({limit: '50mb', extended: true}));
    app.use(bodyParser.urlencoded({ limit: '50mb', extended: true })); 
    var opensslCommand = ''
    
    if (CAPIF_HOSTNAME.includes(':')){
      opensslCommand = `openssl s_client -connect ${CAPIF_HOSTNAME} | openssl x509 -text > ./Responses/cert_server.pem`;
    }
    else{
      opensslCommand = `openssl s_client -connect ${CAPIF_HOSTNAME}:443 | openssl x509 -text > ./Responses/cert_server.pem`;
    }
    
    exec(opensslCommand, (error, stdout, stderr) => {
      if (error) {
        console.error(`Error generating CSR: ${stderr}`);
      }
    });
    
    fs.writeFileSync('./Responses/client_cert.crt', '');
    fs.writeFileSync('./Responses/client_key.key', '');
    
    app.get('/', (req, res) => res.send('Hello, I write data to file. Send them requests!'));
    
    app.post('/generate_csr', (req, res) => {
    
      console.log(req.body);
      const csrFilePath = 'Responses/'+req.body.apiProvFuncRole+'_csr.pem';
      const privateKeyFilePath = 'Responses/'+req.body.apiProvFuncRole+'_key.key';
    
      const subjectInfo = {
        country: 'ES',
        state: 'Madrid',
        locality: 'Madrid',
        organization: 'Telefonica I+D',
        organizationalUnit: 'IT Department',
        emailAddress: 'admin@example.com',
      };
    
      const opensslCommand = `openssl req -newkey rsa:2048 -nodes -keyout ${privateKeyFilePath} -out ${csrFilePath} -subj "/C=${subjectInfo.country}/ST=${subjectInfo.state}/L=${subjectInfo.locality}/O=${subjectInfo.organization}/OU=${subjectInfo.organizationalUnit}/emailAddress=${subjectInfo.emailAddress}"`;
    
      exec(opensslCommand, (error, stdout, stderr) => {
        if (error) {
          console.error(`Error generating CSR: ${stderr}`);
        } else {
          console.log('CSR generated successfully:');
          fs.readFile(csrFilePath, 'utf8', (readError, csrContent) => {
            if (readError) {
              console.error(`Error reading CSR: ${readError}`);
              res.status(500).send('Error reading CSR');
            } else {
              console.log('CSR read successfully:');
              // Send the CSR content in the response