OpenVAS Manager  7.0.3~git
lsc_user.h File Reference
#include <glib.h>
Include dependency graph for lsc_user.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

int lsc_user_keys_create (const gchar *, gchar **)
 Create local security check (LSC) keys. More...
 
int lsc_user_rpm_recreate (const gchar *, const gchar *, void **, gsize *)
 
int lsc_user_deb_recreate (const gchar *, const char *, gsize, void **, gsize *)
 Recreate Debian package. More...
 
int lsc_user_exe_recreate (const gchar *, const gchar *, void **, gsize *)
 Recreate NSIS package. More...
 

Function Documentation

◆ lsc_user_deb_recreate()

int lsc_user_deb_recreate ( const gchar *  name,
const char *  rpm,
gsize  rpm_size,
void **  deb,
gsize *  deb_size 
)

Recreate Debian package.

Parameters
[in]nameUser name.
[in]rpmRPM package.
[in]rpm_sizeSize of RPM package, in bytes.
[out]debDebian package.
[out]deb_sizeSize of Debian package, in bytes.
Returns
0 success, -1 error.

Definition at line 602 of file lsc_user.c.

Referenced by credential_iterator_deb().

604 {
605  GError *error;
606  char deb_dir[] = "/tmp/deb_XXXXXX";
607  char rpm_dir[] = "/tmp/rpm_XXXXXX";
608  gchar *deb_path, *rpm_path;
609  int ret = -1;
610 
611  if (alien_found () == FALSE)
612  {
613  g_warning ("%s: Need \"alien\" to make DEBs\n", __FUNCTION__);
614  return -1;
615  }
616 
617  /* Make a directory for the RPM. */
618 
619  if (mkdtemp (rpm_dir) == NULL)
620  return -1;
621 
622  /* Write RPM to disk. */
623 
624  error = NULL;
625  rpm_path = g_build_filename (rpm_dir, "p.rpm", NULL);
626  g_file_set_contents (rpm_path, rpm, rpm_size, &error);
627  if (error)
628  goto free_exit;
629 
630  /* Create Debian package. */
631 
632  if (mkdtemp (deb_dir) == NULL)
633  goto free_exit;
634  deb_path = lsc_user_deb_create (name, rpm_path);
635  if (deb_path == NULL)
636  goto rm_exit;
637 
638  /* Read the package into memory. */
639 
640  error = NULL;
641  g_file_get_contents (deb_path, (gchar **) deb, deb_size, &error);
642  g_free (deb_path);
643  if (error)
644  {
645  g_error_free (error);
646  goto rm_exit;
647  }
648 
649  /* Return. */
650 
651  ret = 0;
652 
653  rm_exit:
654 
655  openvas_file_remove_recurse (deb_dir);
656 
657  free_exit:
658 
659  g_free (rpm_path);
660 
661  openvas_file_remove_recurse (rpm_dir);
662 
663  return ret;
664 }
gchar * lsc_user_deb_create(const gchar *user, const gchar *rpm_file)
Create a Debian package from an LSC user RPM package.
Definition: lsc_user.c:564
char name[1]
Definition: lsc_crypt.c:78
Here is the caller graph for this function:

◆ lsc_user_exe_recreate()

int lsc_user_exe_recreate ( const gchar *  name,
const gchar *  password,
void **  exe,
gsize *  exe_size 
)

Recreate NSIS package.

Parameters
[in]nameUser name.
[in]passwordPassword.
[out]exeNSIS package.
[out]exe_sizeSize of NSIS package, in bytes.
Returns
0 success, -1 error.

Definition at line 883 of file lsc_user.c.

Referenced by credential_iterator_exe().

885 {
886  GError *error;
887  char exe_dir[] = "/tmp/exe_XXXXXX";
888  gchar *exe_path;
889  int ret = -1;
890 
891  if (alien_found () == FALSE)
892  {
893  g_warning ("%s: Need \"alien\" to make EXEs\n", __FUNCTION__);
894  return -1;
895  }
896 
897  /* Create NSIS package. */
898 
899  if (mkdtemp (exe_dir) == NULL)
900  return -1;
901  exe_path = g_build_filename (exe_dir, "p.nsis", NULL);
902  if (lsc_user_exe_create (name, password, exe_path))
903  goto rm_exit;
904 
905  /* Read the package into memory. */
906 
907  error = NULL;
908  g_file_get_contents (exe_path, (gchar **) exe, exe_size, &error);
909  if (error)
910  {
911  g_error_free (error);
912  goto rm_exit;
913  }
914 
915  /* Return. */
916 
917  ret = 0;
918 
919  rm_exit:
920 
921  openvas_file_remove_recurse (exe_dir);
922 
923  g_free (exe_path);
924 
925  return ret;
926 }
char name[1]
Definition: lsc_crypt.c:78
Here is the caller graph for this function:

◆ lsc_user_keys_create()

int lsc_user_keys_create ( const gchar *  password,
gchar **  private_key 
)

Create local security check (LSC) keys.

Parameters
[in]passwordPassword.
[out]private_keyPrivate key.
Returns
0 success, -1 error.

Definition at line 177 of file lsc_user.c.

179 {
180  GError *error;
181  gsize length;
182  char key_dir[] = "/tmp/openvas_key_XXXXXX";
183  gchar *key_path = NULL;
184  int ret = -1;
185 
186  /* Make a directory for the keys. */
187 
188  if (mkdtemp (key_dir) == NULL)
189  return -1;
190 
191  /* Create private key. */
192  key_path = g_build_filename (key_dir, "key", NULL);
193  if (create_ssh_key ("Key generated by OpenVAS Manager", password, key_path))
194  goto free_exit;
195 
196  error = NULL;
197  g_file_get_contents (key_path, private_key, &length, &error);
198  if (error)
199  {
200  g_error_free (error);
201  goto free_exit;
202  }
203  ret = 0;
204  free_exit:
205 
206  g_free (key_path);
207  openvas_file_remove_recurse (key_dir);
208  return ret;
209 }

◆ lsc_user_rpm_recreate()

int lsc_user_rpm_recreate ( const gchar *  ,
const gchar *  ,
void **  ,
gsize *   
)