Ir para conteúdo
@gilsones

Assinar XML com C/C++ (Certificado A3)

Recommended Posts

Pessoal, é possível assinar digitalmente um documento XML com C/C++ ?

 

Preciso contratar alguém para fazer um componente/modulo para assinar a NFe, que será acessado por outro sistema, mas queria saber se é possível.

Tenho a opção do Java tbm, mas antes queria tentar um opção sem precisar instalar o Java no servidor.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.

  • Conteúdo Similar

    • Por Dan Borges
      Olá,
       
      Tenho conhecimentos em C#, e ultimamente venho programando utilizando o MonoGame para desenvolver jogos. Estava procurando como é feito uma pista pseudo 3D, e achei esse artigo em JS: https://codeincomplete.com/posts/javascript-racer-v1-straight/
       
      Por ter a lógica de programação da mente, mesmo sem saber js, entendi parte do código, mas esse trecho, não:
      segments = []; for(var n = 0 ; n < 500 ; n++) { // arbitrary road length segments.push({ index: n, p1: { world: { z: n *segmentLength }, camera: {}, screen: {} }, p2: { world: { z: (n+1)*segmentLength }, camera: {}, screen: {} }, color: Math.floor(n/rumbleLength)%2 ? COLORS.DARK : COLORS.LIGHT }); } A primeira vista entendi que ele está adicionando valores ao array segments com o método push. Mas, os valores colocados, não fazem sentido para mim.
      É como se fosse criada uma classe dinamicamente (que contenha as variáveis:, index, p1, p2...) sem precisar declará-la.
      Seria basicamente isso? Ele criou um objeto que representa uma classe, mas sem nomeá-la, ou algo semelhante?
    • Por EREGON
      Bom dia,
       
      estou a tentar fazer um exercício para, dado um ficheiro .txt na directoria do programa, terei de encontrar todas as palavras que são palíndromos. Tendo este código para ler as palavras do ficheiro .txt (letra a letra) para uma matrix.
       
      Estando as palavras armazenadas numa matrix, como faço essa validação?
       
      Obg,
       
      #include <stdio.h> #include <stdlib.h> int main(int argc, char const *argv[]) { FILE* inp; inp = fopen("palindromo.txt","r"); char arr[100][50]; int i = 0; while(1){ char r = (char)fgetc(inp); int k = 0; while(r!=',' && !feof(inp)){ //Le ate fim de ficheiro arr[i][k++] = r; //armazena no array r = (char)fgetc(inp); } arr[i][k]=0; //ultimo carater nulo //Alguma parte aqui, valida se a palavra e PALINDROMO. //COMO?? if(feof(inp)){ //valida EOF break; } i++; } int j; for(j = 0;j<=i;j++){ printf("%s\n",arr[j] ); //Imprime array } return 0; }  
    • Por Bruno Goedert Dalmolin
      Não consigo apresentar as palavras equivalentes conseguem me ajudar???
      O código é o seguinte: 
       
      #include <stdio.h>
      char equivale(int ddd){
          switch(ddd){
              case 61:
                  return "Brasilia";
                  break;
              case 71:
                  return "Salvador";
                  break;
              case 11:
                  return "Sao Palo";
                  break;
              case 21:
                  return "Rio de Janeiro";
                  break;
              case 32:
                  return "Juiz de Fora";
                  break;
              case 19:
                  return "Campinas";
                  break;
              case 27:
                  return "Vitoria";
                  break;
              case 31:
                  return "Belo Horizonte";
                  break;
          }
      }
      int main(){
          int ddd;
          scanf("%d",&ddd);
          equivale(ddd);
          printf("%d",equivale(ddd));
      }
    • Por DANIEL ALVES BARBOSA
      Na verdade não é uma dúvida e sim um exemplo de código que fiz para capturar os atributos do XML e ler com php.
       
      <?xml version="1.0" encoding="utf-8"?> <FDBS Version="15"> <Manager UpdatesRegistry="True"> <TableList> <Table Name="FDQuery2" SourceName="ORCAMENTO_ITENS" SourceID="1" TabID="0" EnforceConstraints="False" MinimumCapacity="50"> <ColumnList> <Column Name="ID" SourceName="ID" SourceID="1" DataType="Int32" Searchable="True" Base="True" OInUpdate="True" OInWhere="True" OInKey="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="ID"/> <Column Name="ITEM" SourceName="ITEM" SourceID="2" DataType="Int32" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="ITEM"/> <Column Name="ID_PRODUTO" SourceName="ID_PRODUTO" SourceID="3" DataType="Int32" Searchable="True" Base="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="ID_PRODUTO"/> <Column Name="ID_ORCAMENTO" SourceName="ID_ORCAMENTO" SourceID="4" DataType="Int32" Searchable="True" Base="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="ID_ORCAMENTO"/> <Column Name="QUANTIDADE" SourceName="QUANTIDADE" SourceID="5" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="QUANTIDADE" SourcePrecision="18" SourceScale="6"/> <Column Name="VALOR_UNITARIO" SourceName="VALOR_UNITARIO" SourceID="6" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="VALOR_UNITARIO" SourcePrecision="18" SourceScale="6"/> <Column Name="VALOR_CUSTO" SourceName="VALOR_CUSTO" SourceID="7" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="VALOR_CUSTO" SourcePrecision="18" SourceScale="6"/> <Column Name="VALOR_PRODUTOS" SourceName="VALOR_PRODUTOS" SourceID="8" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="VALOR_PRODUTOS" SourcePrecision="18" SourceScale="6"/> <Column Name="TOTAL_ITEM" SourceName="TOTAL_ITEM" SourceID="9" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="TOTAL_ITEM" SourcePrecision="18" SourceScale="6"/> <Column Name="DESCONTO" SourceName="DESCONTO" SourceID="10" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="DESCONTO" SourcePrecision="18" SourceScale="6"/> <Column Name="ACRESCIMO" SourceName="ACRESCIMO" SourceID="11" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="ACRESCIMO" SourcePrecision="18" SourceScale="6"/> <Column Name="ACRESCIMO_RATEIO" SourceName="ACRESCIMO_RATEIO" SourceID="12" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="ACRESCIMO_RATEIO" SourcePrecision="18" SourceScale="6"/> <Column Name="DESCONTO_RATEIO" SourceName="DESCONTO_RATEIO" SourceID="13" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="DESCONTO_RATEIO" SourcePrecision="18" SourceScale="6"/> <Column Name="CANCELADO" SourceName="CANCELADO" SourceID="14" DataType="AnsiString" Size="1" Searchable="True" AllowNull="True" FixedLen="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="CANCELADO" SourceSize="1"/> <Column Name="MOVIMENTA_ESTOQUE" SourceName="MOVIMENTA_ESTOQUE" SourceID="15" DataType="AnsiString" Size="1" Searchable="True" AllowNull="True" FixedLen="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="MOVIMENTA_ESTOQUE" SourceSize="1"/> <Column Name="DESC_ACRES" SourceName="DESC_ACRES" SourceID="16" DataType="AnsiString" Size="15" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="DESC_ACRES" SourceSize="15"/> <Column Name="ID_GRADE_ITENS" SourceName="ID_GRADE_ITENS" SourceID="17" DataType="Int32" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="ID_GRADE_ITENS"/> </ColumnList> <ConstraintList/> <ViewList/> <RowList> <Row RowID="0"> <Original ID="1" ITEM="1" ID_PRODUTO="1" ID_ORCAMENTO="1" QUANTIDADE="1" VALOR_UNITARIO="2.5" VALOR_CUSTO="0" VALOR_PRODUTOS="2.5" TOTAL_ITEM="2.5" DESCONTO="0" ACRESCIMO="0" ACRESCIMO_RATEIO="0" DESCONTO_RATEIO="0" CANCELADO="N" MOVIMENTA_ESTOQUE="N" DESC_ACRES=""/> </Row> <Row RowID="1"> <Original ID="2" ITEM="1" ID_PRODUTO="1" ID_ORCAMENTO="2" QUANTIDADE="1" VALOR_UNITARIO="2.5" VALOR_CUSTO="0" VALOR_PRODUTOS="2.5" TOTAL_ITEM="2.5" DESCONTO="0" ACRESCIMO="0" ACRESCIMO_RATEIO="0" DESCONTO_RATEIO="0" CANCELADO="N" MOVIMENTA_ESTOQUE="N" DESC_ACRES=""/> </Row> </RowList> </Table> </TableList> <RelationList/> <UpdatesJournal> <Changes/> </UpdatesJournal> </Manager> </FDBS>  
      Arquivo php
       
      <?php $xml = simplexml_load_file('uploads/teste3.xml'); foreach ($xml->children()->children()->children()->children() as $node) { foreach ($node as $value) { foreach ($value as $value2) { $id2 = "NULL"; $item2= $value2['ITEM']; $id_produto2 = $value2['ID_PRODUTO']; $id_orcamento2 = $value2['ID_ORCAMENTO']; $id_quantidade2 = $value2['QUANTIDADE']; $valor_unitario2 = $value2['VALOR_UNITARIO']; $valor_custo2 = $value2['VALOR_CUSTO']; $valor_produtos2 = $value2['VALOR_PRODUTOS']; $total_item2 = $value2['TOTAL_ITEM']; $desconto2 = $value2['DESCONTO']; $acrescimo2 = $value2['ACRESCIMO']; $acrescimo_rateio = $value2['ACRESCIMO_RATEIO']; $desconto_rateio = $value2['DESCONTO_RATEIO']; $cancelado2 = $value2['CANCELADO']; $cancelado2 = "'$cancelado2'"; $movimenta_estoque2 = $value2['MOVIMENTA_ESTOQUE']; $movimenta_estoque2 = "'$movimenta_estoque2'"; $desconto_acres = "NULL"; $id_grade_itens = "NULL"; echo $id2."<br>".$item2."<br>".$id_produto2."<br>".$id_orcamento2."<br>".$id_quantidade2."<br>".$valor_unitario2."<br>... etc"."<br>"; } } }  
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.