Algorithm to implement symmetric encryption in VB.Net for Windows and in Swift for iOS

I need to implement symmetric encryption to enable secure communication between one program running on a Windows machine (to be written in VB.Net) and an app running on an iOS device (to be written in Swift). I’d like to use a reasonably modern algorithm which is supported in both programming languages “out of the box” without having to import more code than necessary.

The use case is, information (mostly, text files) will be encrypted by one program (say, running on Windows) and uploaded to a server, where it will be stored, then later downloaded and then decrypted by the other program (running on iOS). The server doesn’t need access to the content of the file, and having the information “encrypted at rest” on the server is the main goal, although having it encrypted during transit to/from the server is also beneficial. The Windows and the iOS devices themselves aren’t considered to be targeted in this case.

What algorithm(s) are good choices as being modern, secure, and available in both Swift and Dot Net so that what’s encrypted by one can be decrypted by the other?

Perdida de datos entre clases de misma capa (VB.NET)

Situación: quiero pasar los datos de login desde capa visual a logica y posterior datos, para obtener una respuesta de rol del usuario que ingresa. Problema: los datos de login que se ingresan en la capa visual, llegan con éxito hasta la clase para Usuarios de la capa de datos, pero no logro que lleguen a la superclase de clase de conexión ni al módulo donde tengo los parametros para conectarme a la BD. Los códigos:

Clase Modelo de conexion, (superclase)

Imports System.Data.Odbc Public MustIhnerit Class Conexion     Public User As String     Public Pass As String     Public DB As String     Public IP As String      Public conexion As New OdbcConnection     Public comando As New OdbcCommand     Public lector As OdbcDataReader      Public Sub New()         MsgBox(StringConexion)         'Este MsgBox muestra vacíos los campos Usuario y Password, es el String para realizar la conexión.         Me.conexion.ConnectionString = ParametrosDB.StringConexion         Me.conexion.Open()         Me.comando.Connection = Me.conexion     End Sub End Class 

Clase modelo de conexion por consultas de usuario (para login, obtener el rol del usuario etc, al momento solo intento obtener el rol)

Public Class Usuarios     Inherits Conexion     Public ro As Integer     Public User     Public Pass      Public Function ObtenerRol()         MsgBox("Usuario: " + Me.User + "; Password: " + Me.Pass)          'Este MsgBox muestra los datos que ingresé sin problemas         Dim sql = "SELECT fk_rol_empl FROM EMPLEADO WHERE USUARIO = '" + Me.User + "'"         Me.comando.CommandText = sql         lector = Me.comando.ExecuteReader()         Return ro     End Function  End Class 

Módulo al que no llegan los datos:

Module ParametrosDB      Public IP = "192.168.50.5"     Public Usuario = ""     Public DB = "baseproyecto"     Public Password = ""      Public StringConexion = "DRIVER={IBM INFORMIX ODBC DRIVER (64-bit)};                 UID=" + Usuario + ";                 PWD=" + Password + ";                 DATABASE=" + DB + ";                 HOST=" + IP + ";                 SERVER=ol_esi;                 SERVICE=9088;                 PROTOCOL=onsoctcp;                 CLIENT_LOCALE=en_US.CP1252;                 DB_LOCALE=en_US.819"     End Module 

Como los datos de Usuario y Password no llegan al módulo no puedo ingresar a la BD.
Dato que me alarma, es que con todos los msgbox que estoy utilizando para del debug, poniendo uno en la clase de cada capa, el orden en que los muestra es desde capa de datos hacia visual, cuando creo debería ser al contrario, que me dicen?

Gracias. 

ACTUALIZAR TABLA DE MYSQL DESDE DATAGRIVIEW EN VB.NET

Estoy desarrollando un software para una empresa inmobiliaria como proyecto para salvar mis estudios.

los pongo en contexto… Tengo una tabla que se carga en un datagridview en una ventana de mi programa. Quiero que con un botón que al escribir en el datagridview desde adentro del programa guarde los datos en la tabla de la base de datos de mysql.

*No importa cual linea haya modificado del datagridview lo guardara , almenos que haya una validacion que no lo permita.

Cómo pasar datos de un datagridview a un datatable (incluyendo una imagen) en vb.net?

Así la cuestión. Tengo una datagridview donde tengo cargados todos los productos y otro datagridview donde incluyo los productos a los cuales les quiero imprimir codigo de barra. En ese datagrid tengo cod, desc, lab, pres, medida, barcode (esta ultima es de tipo imagecolumn) como columnas. Lo que quiero es pasar todos los datos del segundo datagrid a un datatable para usarlo en un reporte de crystal reports.

Gracias de antemano

Nuevo archivo LibreOffice Calc desde VB.NET

estoy creando un nuevo archivo Calc añadiendo datos y formato, pero no veo la forma de guardar el archivo ya que las funciones “ConvertToUrl”, “store”, “storeAsURL” y todas las que pruebo para guardar el archivo no funcionan, ¿alguna solución?

codigo de ejemplo

`Dim oServicio As Object = CreateObject(“com.sun.star.ServiceManager”) Dim Escritorio As Object = oServicio.createInstance(“com.sun.star.frame.Desktop”)

    Dim args(0) As Object     args(0) = oServicio.Bridge_GetStruct("com.sun.star.beans.PropertyValue")     args(0).Value = True      Dim libroLO As Object = Escritorio.loadComponentFromURL("private:factory/scalc", "_default", 0, args)      libroLO.getCurrentController.getFrame.getContainerWindow.setVisible(True)     libroLO.getCurrentController.getFrame.getComponentWindow.setVisible(True)      Dim hojaLO = libroLO.getSheets().getByIndex(0)      hojaLO.getcellbyposition(0, 0).setFormula("datos")      'Establecemos la ruta y nombre donde se guardara el archivo     Dim sRuta = ConvertToUrl("file:///D:/prueba.ods")     libroLO.storeAsURL(sRuta, args(0))     libroLO.close(True)      hojaLO = Nothing     libroLO = Nothing     Escritorio = Nothing     oServicio = Nothing` 

Como puedo identificar un formulario vb.net

Quisiera saber como puedo identificar un formulario MDI-Child, y diferenciar uno de otro. Yo sé identificarlo por nombre, como se puede ver de la siguiente manera:

DirectCast(Application.OpenForms.Item(formulario.Name), formulario) 

Pero que pasa en este ejemplo si el mismo formulario obviamente con un nombre repetido, puedo diferenciar un formulario de otro. Quiero saber como puedo en listar los formularios y recorrer, y poder diferenciar entre ellos, a través de una identificación o algo, Tal como un proceso abierto tiene un PID, un formulario seguramente tiene algo parecido cierto? GRACIAS

Erro Failed to convert parameter value from a String to a Int32 Vb.net e SQL

Estou a enfrentar um problema a tentar inserir dados, o erro diz que está relacionado com a data, já tentei alterar o formato da data e o erro continua.

Codigo:

Private Sub BarButtonItem3_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem3.ItemClick      Dim command As New SqlCommand("insert into funcionarios(id, funcid, pnome, apelido, datanascimento, naturalidade, estadocivil, genero, documentotipo, documentoid, telefone, email, endereco, certificadocopia, cvcopia, bicopia, nuitcopia, diplomacopia, dataingressao, datasaida, banco, titular, numeroconta, nib, afetacao, categoria, funcao, progressao, carreira, dependentes, filhos, mulher, departamento, fotografia, dataregisto, dataatualizacao, mulhernome, filhonome1, filhonome2, filhonome3, filhonome4, filhonome5) values (@id, @funcid, @pnome, @apelido, @datanascimento, @naturalidade, @estadocivil, @genero, @documentotipo, @documentoid, @telefone, @email, @endereco, @certificadocopia, @cvcopia, @bicopia, @nuitcopia, @diplomacopia, @dataingressao, @datasaida, @banco, @titular, @numeroconta, @nib, @afetacao, @categoria, @funcao, @progressao, @carreira, @dependentes, @filhos, @mulher, @departamento, @fotografia, @dataregisto, @dataatualizacao, @mulhernome, @filhonome1, @filhonome2, @filhonome3, @filhonome4, @filhonome5)", conexao)     Dim ms As New MemoryStream     Ffotografia.Image.Save(ms, Ffotografia.Image.RawFormat)     'Dim ms2 As New MemoryStream     'Fcertificado.Image.Save(ms2, Fcertificado.Image.RawFormat)     'Dim ms3 As New MemoryStream     'Fcurricum.Image.Save(ms3, Fcurricum.Image.RawFormat)     'Dim ms4 As New MemoryStream     'Fbidenti.Image.Save(ms4, Fbidenti.Image.RawFormat)     'Dim ms5 As New MemoryStream     'Fnuit.Image.Save(ms5, Fnuit.Image.RawFormat)     'Dim ms6 As New MemoryStream     'Fdiploma.Image.Save(ms6, Fdiploma.Image.RawFormat)      command.Parameters.Add("@id", SqlDbType.Int).Value = txtID.Text     command.Parameters.Add("@funcid", SqlDbType.Int).Value = txtfuncid.Text     command.Parameters.Add("@pnome", SqlDbType.NVarChar).Value = txtnome.Text     command.Parameters.Add("@apelido", SqlDbType.NVarChar).Value = txtapelido.Text     command.Parameters.Add("@datanascimento", SqlDbType.Date).Value = datanascimento.Value.ToString("yyyy-MM-dd")     command.Parameters.Add("@naturalidade", SqlDbType.NVarChar).Value = cmbnaturalidade.SelectedItem     command.Parameters.Add("@estadocivil", SqlDbType.NVarChar).Value = cmbestado.SelectedItem     command.Parameters.Add("@genero", SqlDbType.NVarChar).Value = cmbgenero.SelectedItem     command.Parameters.Add("@documentotipo", SqlDbType.NVarChar).Value = cmbtipoid.SelectedItem     command.Parameters.Add("@documentoid", SqlDbType.BigInt).Value = txtdocn.Text     command.Parameters.Add("@telefone", SqlDbType.BigInt).Value = txttelefone.Text     command.Parameters.Add("@email", SqlDbType.Int).Value = txtemail.Text     command.Parameters.Add("@endereco", SqlDbType.NVarChar).Value = txtendereco.Text     ' command.Parameters.Add("@certificadocopia", SqlDbType.Image).Value = ms2.ToArray()     'command.Parameters.Add("@cvcopia", SqlDbType.Image).Value = ms3.ToArray()     'command.Parameters.Add("@bicopia", SqlDbType.Image).Value = ms4.ToArray()     'command.Parameters.Add("@nuitcopia", SqlDbType.Image).Value = ms5.ToArray()     'command.Parameters.Add("@diplomacopia", SqlDbType.Image).Value = ms6.ToArray()     command.Parameters.Add("@dataingressao", SqlDbType.Date).Value = dataingressao.Value.ToString("yyyy-MM-dd")     command.Parameters.Add("@datasaida", SqlDbType.Date).Value = ""     command.Parameters.Add("@banco", SqlDbType.NVarChar).Value = txtbanco.Text     command.Parameters.Add("@titular", SqlDbType.NVarChar).Value = txttitular.Text     command.Parameters.Add("@numeroconta", SqlDbType.BigInt).Value = txtnumero.Text     command.Parameters.Add("@nib", SqlDbType.BigInt).Value = txtnib.Text     command.Parameters.Add("@afetacao", SqlDbType.NVarChar).Value = cmbafetacao.SelectedItem     command.Parameters.Add("@categoria", SqlDbType.NVarChar).Value = cmbcategoria.SelectedItem     command.Parameters.Add("@funcao", SqlDbType.NVarChar).Value = cmbfuncao.SelectedItem     command.Parameters.Add("@progressao", SqlDbType.NVarChar).Value = cmbprogressao.SelectedItem     command.Parameters.Add("@carreira", SqlDbType.NVarChar).Value = cmbcarreira.SelectedItem     command.Parameters.Add("@dependentes", SqlDbType.Int).Value = dependentescheck.CheckState     command.Parameters.Add("@filhos", SqlDbType.Int).Value = filhocheck.CheckState     command.Parameters.Add("@mulher", SqlDbType.Int).Value = mulhercheck.CheckState     command.Parameters.Add("@departamento", SqlDbType.NVarChar).Value = cmbdepartamento.SelectedItem     command.Parameters.Add("@fotografia", SqlDbType.Image).Value = ms.ToArray()     'command.Parameters.Add("@dataregisto", SqlDbType.Date).Value = Date.Now     'command.Parameters.Add("@datatualizacao", SqlDbType.Date).Value = Date.Now     command.Parameters.Add("@mulhernome", SqlDbType.NVarChar).Value = txtmulher.Text     command.Parameters.Add("@filhonome1", SqlDbType.NVarChar).Value = txtfilho1.Text     command.Parameters.Add("@filhonome2", SqlDbType.NVarChar).Value = txtfilho2.Text     command.Parameters.Add("@filhonome3", SqlDbType.NVarChar).Value = txtfilho3.Text     command.Parameters.Add("@filhonome4", SqlDbType.NVarChar).Value = txtfilho4.Text     command.Parameters.Add("@filhonome5", SqlDbType.NVarChar).Value = txtfilho5.Text      If conexao.State = ConnectionState.Closed Then         conexao.Open()     End If      If command.ExecuteNonQuery() = 1 Then         MessageBox.Show("Sucesso")      Else         MessageBox.Show("Falha")     End If     conexao.Close() End Sub 

VB.NET debugged code changes not saved even though asterisk* was cleared [on hold]

I spent the previous weekend updating my project’s code (ending 7/22/2019). I changed a lot of code, debugged, tested, saved. It was working. I quit VS2017. I made a zip file of my project for safe-keeping. 10 days later I went to add some code for live-testing and ALL CHANGES ARE LOST. They are NOT in my zip file either. The contents of the zip file made on 7/22 shows the last edit to the most recent file as 7/07, same as on the hard drive. I do weekly backups. There are no changes showing in any backups. I scoured my hard drives…no other copies of the file exist except for the duplicates I made to my second HD which have the same, old code. I did make the changes. The files here show changes to this project on 7/21: C:\Users\Magic\AppData\Local\Microsoft\VisualStudio\SettingsLogs\

Any ideas what happened? If it did not save (apparently the case) how was I able to test? If I re-develop that code, how do I know it will not be lost again?

Actually I think this is the second time this happened because last weekend I was fixing code I was sure I had already fixed.

UPDATE: I just made some minor changes and clicked the save button. They were saved. I made another change and exited. It was saved. Two days ago I had to create a new user account due to iCloud Outlook not installing. Apparently portions (unknown to me) of the old user were blocking that install. Maybe they are the culprit?

Regards,

Terry