AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Problem mit undefinierten Bezeichnern

Ein Thema von brushmate · begonnen am 17. Mär 2009 · letzter Beitrag vom 17. Mär 2009
Antwort Antwort
brushmate

Registriert seit: 19. Dez 2008
Ort: Kempen
20 Beiträge
 
Delphi 7 Personal
 
#1

Problem mit undefinierten Bezeichnern

  Alt 17. Mär 2009, 18:47
Hi,

ich bin gerade dabei das RSA-Verfahren zu programmieren:

Delphi-Quellcode:
unit mRSA;

interface

uses
  Math;

type
  TRSA = class(TObject)
    private
      p, q: Integer;
      phi, e: Extended;
      function isPrime(x: Integer): Boolean;
      function ggT(x, y: Extended): Extended;
      function modulo(x, y: Extended): Extended;
    public
      n, d: Extended;
      constructor create();
      function crypt(x: Extended): Extended;
      function encrypt(x: Extended): Extended;
      destructor destroy();
  end;

implementation

constructor TRSA.create();
var help: Integer;
begin
  randomize;
  repeat
    help := random(46340);
  until isPrime(help);
  p := help;
  repeat
    repeat
      help := random(46340);
    until isPrime(help);
    q := help;
  until p <> q;
  N := p*q;
  phi := (p-1)*(q-1);
  repeat
    e := random*(N-1);
  until (e > 1) and ((ggT(e, N)) = 1);
  repeat
    d := random*N;
  until modulo((e*d), phi) = 1;
  p := 0;
  q := 0;
  phi := 0;
end;

function TRSA.isPrime(x: Integer): Boolean;
var i: Integer;
begin
  result := true;
  for i := 2 to (x - 1) do begin
    if x mod i = 0 then result := false
  end;
end;

function TRSA.ggT(x, y: Extended): Extended;
var help: Extended;
begin
  if y > x then begin
    help := x;
    x := y;
    y := help;
  end;
  if y = 0 then result := x
  else result := ggT(y, modulo(x, y));
end;

function TRSA.modulo(x, y: Extended): Extended;
begin
  result := x;
  while x >= y do begin
    x := x - y;
    result := x;
  end;
end;

function crypt(x: Extended): Extended;
begin
  result := modulo(power(x, d), n);
end;

function encrypt(x: Extended): Extended;
begin
  result := modulo(power(x, e), n);
end;

destructor destroy();
begin
  n := 0;
  d := 0;
  e := 0;
  inherited;
end;

end.
Beim kompilieren zeigt mir Delphi bei den Funktionen crypt und encrypt folgende Fehler an:
[Fehler] mRSA.pas(85): Undefinierter Bezeichner: 'modulo'
[Fehler] mRSA.pas(85): Undefinierter Bezeichner: 'd'
[Fehler] mRSA.pas(90): Undefinierter Bezeichner: 'modulo'
[Fehler] mRSA.pas(90): Undefinierter Bezeichner: 'e'
[Fehler] mRSA.pas(93): Undefinierter Bezeichner: 'destroy'
[Fehler] mRSA.pas(95): Undefinierter Bezeichner: 'n'
[Fehler] mRSA.pas(96): Undefinierter Bezeichner: 'd'
[Fehler] mRSA.pas(97): Undefinierter Bezeichner: 'e'

Vor diesen Zeilen hat er keine Probleme mit den Funktionen und Variablen...
Wodran liegt's?
  Mit Zitat antworten Zitat
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Problem mit undefinierten Bezeichnern

  Alt 17. Mär 2009, 18:49
Deine Funktionen sind keine Angehörigen von der zuvor definierten Klasse TRSA. Aus diesem Grund kennen sie die anderen Funktionen und die in der Klasse definierten Variablen nicht. Füge vor jede Funktion noch den Klassennamen ein, dann wirds funktionieren:

Delphi-Quellcode:
function TRSA.crypt(x: Extended): Extended;
begin
  result := modulo(power(x, d), n);
end;
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
brushmate

Registriert seit: 19. Dez 2008
Ort: Kempen
20 Beiträge
 
Delphi 7 Personal
 
#3

Re: Problem mit undefinierten Bezeichnern

  Alt 17. Mär 2009, 18:53
Stimmt...

Danke^^
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz